Ubuntu 21.04に最新版Nginxをインストールする

Ubuntu 21.04に最新版Nginxをインストールする サーバー

この記事では、Ubuntu 21.04に最新版Nginxをインストールする方法を解説しています。

Ubuntu 20.04の場合は、次の記事をご覧ください。

本記事の内容

  • OS標準のNginx
  • リポジトリ情報の確認
  • リポジトリの追加
  • パッケージ更新
  • インストール

それでは、上記に沿って解説していきます。

OS標準のNginx

Ubuntuには、OS標準のソフトウェアが存在しています。
Nginxのような人気ソフトウェアであれば、ほぼ確実にOS標準が存在します。

マイナーなソフトウェアであれば、OS標準のモノは存在しないこともあります。
ただ、このあたりの基準はよくわかりません。

では、Ubuntu 21.04におけるOS標準であるNginxを確認してみましょう。
利用しているのは、以下のOSです。

$ cat /etc/lsb-release 
DISTRIB_ID=Ubuntu 
DISTRIB_RELEASE=21.04 
DISTRIB_CODENAME=hirsute 
DISTRIB_DESCRIPTION="Ubuntu 21.04"

上記OSにおけるOS標準であるNginxは、以下となります。

$ sudo apt info nginx 
Package: nginx 
Version: 1.18.0-6ubuntu8.2 
Priority: optional 
Section: web 
Origin: Ubuntu 
Maintainer: Ubuntu Developers <ubuntu-devel-discuss@lists.ubuntu.com> 
Original-Maintainer: Debian Nginx Maintainers <pkg-nginx-maintainers@alioth-lists.debian.net> 
Bugs: https://bugs.launchpad.net/ubuntu/+filebug 
Installed-Size: 49.2 kB 
Depends: nginx-core (<< 1.18.0-6ubuntu8.2.1~) | nginx-full (<< 1.18.0-6ubuntu8.2.1~) | nginx-light (<< 1.18.0-6ubuntu8.2.1~) | nginx-extras (<< 1.18.0-6ubuntu8.2.1~), nginx-core (>= 1.18.0-6ubuntu8.2) | nginx-full (>= 1.18.0-6ubuntu8.2) | nginx-light (>= 1.18.0-6ubuntu8.2) | nginx-extras (>= 1.18.0-6ubuntu8.2) 
Breaks: libnginx-mod-http-lua (<< 1.18.0-6ubuntu5) 
Homepage: https://nginx.net 
Download-Size: 3,968 B 
APT-Sources: http://archive.ubuntu.com/ubuntu hirsute-updates/main amd64 Packages 
Description: 小さくて強力で拡張性のあるウェブ/プロキシサーバ 
 Nginx ("engine X") は Igor Sysoev によって作成された高性能ウェブおよび 
 リバースプロキシサーバです。スタンドアロンのウェブサーバとしても バックエンドの HTTP やメールサーバへの負荷を減らすためのプロキシとしても 
 使えます。 
 . 
 This is a dependency package to install either nginx-core (by default), 
 nginx-full, nginx-light or nginx-extras. 

Versionを確認します。
1.18.0と表示されていますね。
Nginx 1.18.0は、2020年4月21日にリリースされています。

Ubuntu 21.04のOS標準であるNginxは、バージョンが上がっていると思い込んでいました
でも、Ubuntu 20.04と同じNginxのバージョンを使わないといけない状態です。

なお、現時点(2021年8月末)でのNginxの最新バージョンは1.21.1です。
以下は、最新の二つのバージョンとなります。

Nginxバージョンリリース日
1.21.12021年7月6日
1.20.12021年5月25日

これを見ると、タイミングが悪かったかもしれません。
Ubuntu 21.04は、2021年4月末にリリースされています。

Ubuntu 21.04リリース時点では、まだNginxの新しいバージョンは公開されていません。
それであれば、OS標準のNginxも古くなってしまいます。

Ubuntu 21.04においては、有無を言わさずに新しいNginxをインストールしないといけませんね。
そのための手順を以下で説明していきます。

リポジトリ情報の確認

大前提として、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のリリース名は、以下のコマンドで確認できます。
先ほどOSを確認する際に、利用したコマンドです。

$ cat /etc/lsb-release 
DISTRIB_ID=Ubuntu 
DISTRIB_RELEASE=21.04 
DISTRIB_CODENAME=hirsute 
DISTRIB_DESCRIPTION="Ubuntu 21.04"

上記結果より、Ubuntu 21.04のリリース名は「hirsute」だと確認できます。
したがって、リポジトリ情報は以下のようになります。

deb https://nginx.org/packages/ubuntu/ hirsute nginx  
deb-src https://nginx.org/packages/ubuntu/ hirsute nginx

これが、Ubuntu 21.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/ hirsute nginx   
deb-src https://nginx.org/packages/ubuntu/ hirsute nginx

ファイル作成の際は、権限に注意してください。
そもそも、sudoコマンド以外でファイル作成できないはずです。

ちなみに、私は以下のコマンドでファイルを新規作成しています。
viよりもnanoの方を個人的には使っています。

sudo nano /etc/apt/sources.list.d/nginx.list

パッケージ更新

追加したリポジトリを反映させます。
リポジトリを追加したら、呪文のように唱えましょう。

sudo apt update

通常、次のようなGPGエラーが出ます。

W: GPG エラー: https://nginx.org/packages/ubuntu hirsute InRelease: 公開鍵を利用できないため、以下の署名は検証できませんでした: NO_PUBKEY ABF5BD827BD9BF62 
E: リポジトリ https://nginx.org/packages/ubuntu hirsute InRelease は署名されていません。 
N: このようなリポジトリから更新を安全に行うことができないので、デフォルトでは更新が無効になっています。 
N: リポジトリの作成とユーザ設定の詳細は、apt-secure(8) man ページを参照してください。

追加したNginxのリポジトリが、パッケージ管理ツール(apt)では信用できないということです。
そのため、信用できるリポジトリであることをaptに教える必要があります。

教えるためには、以下のコマンドを利用します。

sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys $key

「$key」には、エラーで出ている「ABF5BD827BD9BF62」を設定します。
ドメイン単位(nginx.org)で同じだと思われます。

コマンドを実行した結果は、下記となります。

$ sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys ABF5BD827BD9BF62 
Warning: apt-key is deprecated. Manage keyring files in trusted.gpg.d instead (see apt-key(8)). 
Executing: /tmp/apt-key-gpghome.Ea2KeVGZ8P/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~hirsute 
Priority: optional 
Section: httpd 
Maintainer: NGINX Packaging <nginx-packaging@f5.com> 
Installed-Size: 3,237 kB 
Provides: httpd, nginx, nginx-r1.20.1 
Depends: libc6 (>= 2.33), 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: 920 kB 
APT-Sources: https://nginx.org/packages/ubuntu hirsute/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がリポジトリには、まだ用意されていないのでしょう。
これは、Ubuntu 20.04 LTSと同じ状況です。

パッケージ反映のタイミング次第では、最新版になるはずです。
今回は、1つ前のバージョンですが良しとしましょう。

それでも、OS標準よりは1年以上後にリリースされたバージョンになります。
これで、aptで簡単にインストールできる準備が整いました。

インストール

ここまで来たら、あとはもう簡単です。
次のコマンドでNgnixのインストールを行います。

sudo apt install nginx

以下のように表示されれば、Ngnixのインストールは成功です。

nginx (1.20.1-1~hirsute) を展開しています... 
nginx (1.20.1-1~hirsute) を設定しています ... 
Created symlink /etc/systemd/system/multi-user.target.wants/nginx.service → /lib/systemd/system/nginx.service. 
man-db (2.9.4-2) のトリガを処理しています ... 
Scanning processes... 
Scanning linux images... 
Running kernel seems to be up-to-date. 
No services need to be restarted. 
No containers need to be restarted. 
No user sessions are running outdated binaries.

インストール後にNginxは、自動起動されません。
Nginxの状況を確認すると、次の結果です。

$ sudo systemctl status nginx 
● nginx.service - nginx - high performance web server 
     Loaded: loaded (/lib/systemd/system/nginx.service; enabled; vendor preset: enabled) 
     Active: inactive (dead) 
       Docs: https://nginx.org/en/docs/

そのため、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 Sun 2021-09-05 16:49:46 JST; 9s ago 
       Docs: https://nginx.org/en/docs/ 
    Process: 4721 ExecStart=/usr/sbin/nginx -c /etc/nginx/nginx.conf (code=exited, status=0/SUCCESS) 
   Main PID: 4722 (nginx) 
      Tasks: 3 (limit: 9499) 
     Memory: 2.4M 
     CGroup: /system.slice/nginx.service 
             ├─4722 nginx: master process /usr/sbin/nginx -c /etc/nginx/nginx.conf 
             ├─4723 nginx: worker process 
             └─4724 nginx: worker process 
 9月 05 16:49:46 ubuntu-hirsute systemd[1]: Starting nginx - high performance web server... 
 9月 05 16:49:46 ubuntu-hirsute systemd[1]: Started nginx - high performance web server.

問題なく、Nginxが起動されていますね。

タイトルとURLをコピーしました