この記事では、Ubuntu 20.04 LTSに最新版Nginxをインストールする方法を解説しています。
Ubuntu 21.04の場合は、次の記事をご覧ください。
本記事の内容
- OS標準のNginx
- リポジトリ情報の確認
- リポジトリの追加
- パッケージ更新
- インストール
それでは、上記に沿って解説していきます。
OS標準のNginx
Ubuntuには、OS標準のソフトウェアが存在しています。
Nginxのような人気ソフトウェアであれば、ほぼ確実にOS標準が存在します。
マイナーなソフトウェアであれば、OS標準のモノは存在しないこともあります。
ただ、このあたりの基準はよくわかりません。
では、Ubuntu 20.04 LTSにおけるOS標準であるNginxを確認してみましょう。
$ sudo apt info nginx Package: nginx Version: 1.18.0-0ubuntu1.2 Priority: optional Section: web Origin: Ubuntu Maintainer: Ubuntu Developers <ubuntu-devel-discuss@lists.ubuntu.com> Original-Maintainer: Debian Nginx Maintainers <pkg-nginx-maintainers@lists.alioth.debian.org> Bugs: https://bugs.launchpad.net/ubuntu/+filebug Installed-Size: 45.1 kB Depends: nginx-core (<< 1.18.0-0ubuntu1.2.1~) | nginx-full (<< 1.18.0-0ubuntu1.2.1~) | nginx-light (<< 1.18.0-0ubuntu1.2.1~) | nginx-extras (<< 1.18.0-0ubuntu1.2.1~), nginx-core (>= 1.18.0-0ubuntu1.2) | nginx-full (>= 1.18.0-0ubuntu1.2) | nginx-light (>= 1.18.0-0ubuntu1.2) | nginx-extras (>= 1.18.0-0ubuntu1.2) Homepage: http://nginx.net Download-Size: 3,620 B APT-Sources: http://archive.ubuntu.com/ubuntu focal-updates/main amd64 Packages Description: small, powerful, scalable web/proxy server Nginx ("engine X") is a high-performance web and reverse proxy server created by Igor Sysoev. It can be used both as a standalone web server and as a proxy to reduce the load on back-end HTTP or mail servers. . This is a dependency package to install either nginx-full (by default), nginx-light or nginx-extras.
Versionに注目してください。
1.18.0と表示されていますね。
Nginx 1.18.0は、2020年4月21日にリリースされています。
モノによるのですが、外部(インターネット)の世界に接するソフトウェアは最新が望ましいです。
セキュリティに関しては、できる限りで対策はしておくべきですからね。
Webサーバーなんて、攻撃を受ける第1位ぐらいのソフトウェアというイメージがあります。
現時点(2021年8月末)でのNginxの最新バージョンは1.21.1です。
以下は、最新の二つのバージョンとなります。
Nginxバージョン | リリース日 |
1.21.1 | 2021年7月6日 |
1.20.1 | 2021年5月25日 |
これらと比較すると、1.18.0は1年以上前のバージョンとなります。
1年前は、Webサーバーという役割的にはヤバイです。
よって、Ubuntu 20.04におけるOS標準であるNginxはインストールしません。
その代わりに、できる限りで新しいバージョンのNginxをインストールします。
ただし、ソースをビルドしてのインストールはやりません。
よほどのことがない限り、パッケージ管理ツール(apt)で行います。
そのための手順を以下で説明していきます。
リポジトリ情報の確認
大前提として、Ngnixがリポジトリを用意していることが条件として存在します。
そして、Ngnixの公式では以下のようにリポジトリ情報が記載されています。
## Replace $release with your corresponding Ubuntu release. deb https://nginx.org/packages/ubuntu/ $release nginx deb-src https://nginx.org/packages/ubuntu/ $release nginx
「$release」には、Ubuntuのリリース名を設定することになります。
Ubuntuのリリース名は、以下のコマンドで確認できます。
$ cat /etc/lsb-release DISTRIB_ID=Ubuntu DISTRIB_RELEASE=20.04 DISTRIB_CODENAME=focal DISTRIB_DESCRIPTION="Ubuntu 20.04.3 LTS"
上記結果より、Ubuntu 20.04のリリース名は「focal」だと確認できます。
したがって、リポジトリ情報は以下のようになります。
deb https://nginx.org/packages/ubuntu/ focal nginx deb-src https://nginx.org/packages/ubuntu/ focal nginx
これが、Ubuntu 20.04を対象としたNginxのリポジトリ情報です。
リポジトリの追加
リポジトリの追加には、以下の2つの方法があります。
- /etc/apt/sources.listに追記
- /etc/apt/sources.list.dにファイルを設置
今回は、「/etc/apt/sources.list.dにファイルを設置」を採用。
/etc/apt/sources.list.dにnginx.listを作成します。
nginx.listには、リポジトリ情報を入力するだけです。
/etc/apt/sources.list.d/nginx.list
deb https://nginx.org/packages/ubuntu/ focal nginx deb-src https://nginx.org/packages/ubuntu/ focal nginx
ファイル作成の際は、権限に注意してください。
そもそも、sudoコマンド以外でファイル作成できないとは思いますけどね。
ちなみに、私は以下のコマンドでファイルを新規作成しています。
viよりもnanoの方が、個人的には使いやすいです。
sudo nano /etc/apt/sources.list.d/nginx.list
パッケージ更新
追加したリポジトリを反映させます。
お馴染みの次のコマンドで行います。
sudo apt update
問題なく完了すればOKです。
しかし、次のようなGPGエラーが出ることがあります。
と言うより、普通は出ます。
W: GPG エラー: https://nginx.org/packages/ubuntu focal InRelease: 公開鍵を利用できないため、以下の署名は検証できませんでした: NO_PUBKEY ABF5BD827BD9BF62 E: リポジトリ https://nginx.org/packages/ubuntu focal InRelease は署名されていません。 N: このようなリポジトリから更新を安全に行うことができないので、デフォルトでは更新が無効になっています。 N: リポジトリの作成とユーザ設定の詳細は、apt-secure(8) man ページを参照してください。
追加したNginxのリポジトリが、パッケージ管理ツール(apt)としては怪しいと言ってます。
だから、信用できるリポジトリであることをaptに教えてあげましょう。
aptに教えてあげるには、以下のコマンドを利用します。
sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys $key
「$key」には、エラーで出ている「ABF5BD827BD9BF62」を設定します。
focalであれば、おそらく同じだと思います。
でも、そこは各自でエラー時に出たキー情報を確認しましょう。
コマンドを実行した結果は、下記となります。
$ sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys ABF5BD827BD9BF62 Executing: /tmp/apt-key-gpghome.d9mnQ2nUTs/gpg.1.sh --keyserver keyserver.ubuntu.com --recv-keys ABF5BD827BD9BF62 gpg: 鍵ABF5BD827BD9BF62: 公開鍵"nginx signing key <signing-key@nginx.com>"をインポートしました gpg: 処理数の合計: 1 gpg: インポート: 1
では、再度パッケージを更新しましょう。
sudo apt update
今回は、エラーも出ずに完了しました。
これにより、aptにも最新のNginxが認識されたはずです。
$ sudo apt info nginx Package: nginx Version: 1.20.1-1~focal Priority: optional Section: httpd Maintainer: NGINX Packaging <nginx-packaging@f5.com> Installed-Size: 3,116 kB Provides: httpd, nginx, nginx-r1.20.1 Depends: libc6 (>= 2.28), libcrypt1 (>= 1:4.1.0), libpcre3, libssl1.1 (>= 1.1.1), zlib1g (>= 1:1.1.4), lsb-base (>= 3.0-6), adduser Conflicts: nginx-common, nginx-core Replaces: nginx-common, nginx-core Homepage: https://nginx.org Download-Size: 878 kB APT-Sources: https://nginx.org/packages/ubuntu focal/nginx amd64 Packages Description: high performance web server nginx [engine x] is an HTTP and reverse proxy server, as well as a mail proxy server.
Nginx 1.20.1が、認識できています。
最新版の1.21.1がリポジトリには、まだ用意されていないのでしょう。
パッケージ反映のタイミング次第では、最新版になるはずです。
今回は、1つ前のバージョンですが良しとしましょう。
これで、aptでサクッとインストールできる準備が整いました。
インストール
ここまで来たら、あとはもう簡単です。
次のコマンドでNgnixのインストールを行います。
sudo apt install nginx
以下のように表示されれば、Ngnixのインストールは成功です。
~ nginx (1.20.1-1~focal) を展開しています... nginx (1.20.1-1~focal) を設定しています ... Created symlink /etc/systemd/system/multi-user.target.wants/nginx.service → /lib/systemd/system/nginx.service. man-db (2.9.1-1) のトリガを処理しています ... systemd (245.4-4ubuntu3.11) のトリガを処理しています ...
この時点では、インストールが完了しただけとなります。
Ngixnを起動させましょう。
Nginxは、次のコマンドで起動します。
sudo systemctl start nginx
状況の確認です。
$ sudo 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 Mon 2021-08-30 00:18:28 UTC; 23s ago Docs: https://nginx.org/en/docs/ Process: 10444 ExecStart=/usr/sbin/nginx -c /etc/nginx/nginx.conf (code=exited, status=0/SUCCESS) Main PID: 10445 (nginx) Tasks: 3 (limit: 9513) Memory: 2.6M CGroup: /system.slice/nginx.service ├─10445 nginx: master process /usr/sbin/nginx -c /etc/nginx/nginx.conf ├─10446 nginx: worker process └─10447 nginx: worker process 8月 30 00:18:28 ubuntu-focal systemd[1]: Starting nginx - high performance web server... 8月 30 00:18:28 ubuntu-focal systemd[1]: Started nginx - high performance web server.
上記のように表示されていれば、Nginxは正常に起動しています。