以前、動的Webサイトをホストするための一般的なソフトウェアスタックであるLEMPスタックをUbuntu18.04LTSにインストールする方法について説明しました。ただし、Ubuntu LTS(長期サポート)リリースのソフトウェアは、多くの場合、古くなっています。このチュートリアルでは、Ubuntu18.04とUbuntu20.04にNginxの最新バージョンをインストールする方法を学習します。この記事の執筆時点で、Nginxの最新バージョンは1.17.0であり、2019年5月21日にリリースされています。変更ログはここで確認できます。
公式のNginxリポジトリからUbuntu18.04、20.04にNginx最新バージョンをインストールする
Nginx.orgはUbuntuのリポジトリを維持しています。このリポジトリを使用して、最新バージョンのNginxをインストールできます。まず、次のコマンドを使用してNginxのリポジトリソースファイルを作成します。 Nanoはコマンドラインテキストエディタです。
sudo nano /etc/apt/sources.list.d/nginx.list
ファイルに次の2行を追加します。
deb [arch=amd64] http://nginx.org/packages/mainline/ubuntu/ bionic nginx deb-src http://nginx.org/packages/mainline/ubuntu/ bionic nginx
Ubuntu 20.04を使用している場合は、bionic
を変更します focal
。
deb [arch=amd64] http://nginx.org/packages/mainline/ubuntu/ disco nginx deb-src http://nginx.org/packages/mainline/ubuntu/ disco nginx
Nanoテキストエディタでファイルを保存するには、CTRL+O
を押します。 、次にEnter
を押します 確認するために。 CTRL+X
を押します 出る。このリポジトリからダウンロードされたパッケージの整合性を検証するには、以下のコマンドを使用してNginx公開鍵をインポートする必要があります。
wget http://nginx.org/keys/nginx_signing.key sudo apt-key add nginx_signing.key
リポジトリがUbuntu18.04システムに追加されたら、次のコマンドを実行してリポジトリ情報を更新します。
sudo apt update
デフォルトのUbuntuソフトウェアリポジトリからNginxをインストールした場合は、それを削除する必要があります。
sudo apt remove nginx nginx-common nginx-full nginx-core
また、メインのNginx構成ファイル/etc/nginx/nginx.conf
をバックアップすることもできます。 新しいnginx.conf
に置き換えられるためです 後で最新バージョンのNginxをインストールするときにファイルします。
sudo cp /etc/nginx/nginx.conf /etc/nginx/nginx.conf.bak
既存のサーバーブロックファイル(別名仮想ホストファイル)はそのまま残ります。次のコマンドを実行して、nginx.orgリポジトリからNginxをインストールします。
sudo apt install nginx
aptパッケージマネージャーから、新しいバージョンの/etc/nginx/nginx.confファイルをインストールするかどうか尋ねられた場合は、「いいえ」と答えることができます。
Nginxをインストールしたら、Nginxの構成をテストします。
sudo nginx -t
テストが成功したら、Nginxを起動します。
sudo systemctl start nginx
起動時に自動起動を有効にします。
sudo systemctl enable nginx
Nginxのステータスを確認するには、
を実行しますsystemctl status nginx
出力:
● nginx.service - nginx - high performance web server Loaded: loaded (/lib/systemd/system/nginx.service; enabled; vendor preset: enabled) Active: active (running) since Sun 2019-05-26 21:01:10 CST; 3s ago Docs: http://nginx.org/en/docs/ Process: 16159 ExecStart=/usr/sbin/nginx -c /etc/nginx/nginx.conf (code=exited, status=0/SUCCESS) Main PID: 16160 (nginx) Tasks: 2 (limit: 4915) CGroup: /system.slice/nginx.service ├─16160 nginx: master process /usr/sbin/nginx -c /etc/nginx/nginx.conf └─16161 nginx: worker process May 26 21:01:10 bionic.local.domain systemd[1]: Starting nginx - high performance web server... May 26 21:01:10 bionic.local.domain systemd[1]: Started nginx - high performance web server.
Nginxのバージョンを確認するには、次のコマンドを使用します:
nginx -v
出力:
nginx version: nginx/1.17.0
次の方法で詳細情報を確認することもできます:
nginx -V
出力:
Nginxプロセスユーザーの設定
nginx.orgリポジトリセットnginx
のNginxパッケージ /etc/nginx/nginx.conf
の最初の行から推測できるNginxプロセスユーザーとして ファイル。 (新しいバージョンの/etc/nginx/nginx.conf
をインストールすることを選択した場合 ファイル。)
user nginx;
ただし、PHP-FPMプロセスのデフォルトのユーザーとグループはwww-data
です。 /etc/php/7.2/fpm/pool.d/www.conf
に見られるように ファイル。
user = www-data group = www-data
したがって、www-data
を設定する必要があります /etc/nginx/nginx.conf
のNginxプロセスユーザーとして ファイル。
sudo nano /etc/nginx/nginx.conf
変更
user nginx;
に
user www-data;
ファイルを保存して閉じます。次に、Nginxをリロードします。
sudo systemctl reload nginx
サーバーブロックファイルを含む
デフォルトでは、/etc/nginx/conf.d/
の下のファイルのみ ディレクトリが含まれます。 sites-enabled
でサーバーブロックファイルも使用する場合 ディレクトリで、次の行がhttp
に追加されていることを確認します nginx.conf
のセクション ファイル。
include /etc/nginx/conf.d/*.conf; include /etc/nginx/sites-enabled/*;
CertbotNginxプラグインをインストールする
以前にUbuntuリポジトリからNginxをインストールした場合、nginx.orgリポジトリからNginxをインストールすると、python3-certbot-nginxパッケージが削除された可能性があります。 TLS証明書を通常どおり自動的に更新できるように、インストールし直す必要があります。
sudo apt install python3-certbot-nginx
Nginxを自動的に再起動する方法
Nginxはさまざまな理由でクラッシュすることがあります。クラッシュ後にNginxを自動的に再起動する場合は、Nginxサービスユニットを編集する必要があります。まず、元のNginxサービスユニットを/etc/systemd/system/
にコピーします ディレクトリ。
sudo cp /lib/systemd/system/nginx.service /etc/systemd/system/nginx.service
次に、サービスユニットを編集します。
sudo nano /etc/systemd/system/nginx.service
[service]
に次の行を追加します セクション。
Restart=always RestartSec=2
そのように:
[Service] Type=forking PIDFile=/var/run/nginx.pid ExecStart=/usr/sbin/nginx -c /etc/nginx/nginx.conf ExecReload=/bin/kill -s HUP $MAINPID ExecStop=/bin/kill -s TERM $MAINPID Restart=always RestartSec=2
これにより、Nginxはクラッシュ後2秒ごとに再起動を試みます。ファイルを保存して閉じます。次に、Nginxを再起動します。
sudo systemctl restart nginx
次のステップ
このチュートリアルが、Ubuntu18.04とUbuntu20.04にNginxの最新バージョンをインストールするのに役立つことを願っています。最新バージョンのMariaDBデータベースサーバーをUbuntu18.04および20.04にインストールすることもできます。
- Ubuntu 18.04、Ubuntu20.04にMariaDB10.5をインストールする方法
また、セキュリティに関心がある場合は、ModSecurity Webアプリケーションファイアウォールを設定して、WordPressサイトをハッキングから保護することができます。
- Debian/UbuntuでNginxを使用してModSecurityを設定する方法
いつものように、この投稿が役に立った場合は、無料のニュースレターを購読して、新しいヒントやコツを入手してください🙂