Nginxの最新の安定版をインストールするのに、sudo apt update && sudo apt install nginx
だけではいけない理由
sudo apt install nginx
でインストールされるのは、Ubuntu公式リポジトリのパッケージです。
公式リポジトリでは、最新のNginxではなく、長期間の安定性を重視したバージョン を提供するため、1.24.0 などの少し古いバージョンが維持されているからです。
実際、私がsudo apt update && sudo apt install nginx
のみを行ったときはNginxの1.24.0がインストールされました。(当時の最新安定版は1.26.3)
Nginxのインストール方法
- 必要な各パッケージをまとめてインストール
- Nginx の署名鍵をインポート
- 取得した署名鍵の確認
- リポジトリの追加
- Nginxのインストール
必要な各パッケージをまとめてインストール
sudo apt install curl gnupg2 ca-certificates lsb-release ubuntu-keyring
-
curl
指定したURLのHTMLデータを取得できるツール。Nginxの公式リポジトリを追加し、必要なURLにアクセスするために使用されます -
gnupg2
公開鍵(GPGキー)管理ツール。リポジトリを追加する際に、Nginxのリポジトリの署名(公開鍵)を検証するために使い、パッケージが正当なものかどうかを確認します -
ca-certificates
SSL/TLS証明書を認証するためのルート証明書を提供するツール。HTTPS経由でリポジトリにアクセスする際、信頼できる証明書を使って接続するために必要です -
lsb-release
インストールされているUbuntuのバージョン情報を取得するためのツール。適切なNginxのリポジトリを選択するために、Ubuntuのバージョンを確認します -
ubuntu-keyring
Ubuntuの公式ソフトウェアリポジトリに関連する公開鍵を管理するツール。Ubuntuのリポジトリと関連パッケージが信頼できることを確認できます
Nginxの署名鍵をインポート
Nginxをインストールする前に、Nginxの署名鍵をインポートする理由
Nginxの署名鍵をインポートすることで、インストールするパッケージの整合性と信頼性を検証でき、偽のソフトウェアがインストールされるリスクを避けることができるからです
curl https://nginx.org/keys/nginx_signing.key | gpg --dearmor \
| sudo tee /usr/share/keyrings/nginx-archive-keyring.gpg >/dev/null
-
curl https://nginx.org/keys/nginx_signing.key
Nginxの公開鍵をWebから取得します -
gpg --dearmor
公開鍵を暗号化形式(ASCII)からバイナリ形式に変換します -
sudo tee /usr/share/keyrings/nginx-archive-keyring.gpg
変換された公開鍵を/usr/share/keyrings/nginx-archive-keyring.gpgというファイルに保存します -
>/dev/null
コマンドの出力を無視するためのものです
取得した署名鍵の確認
gpg --dry-run --quiet --import --import-options import-show /usr/share/keyrings/nginx-archive-keyring.gpg
pub rsa2048 2011-08-19 [SC] [expires: 2027-05-24]
573BFD6B3D8FBC641079A6ABABF5BD827BD9BF62
uid nginx signing key <signing-key@nginx.com>
573BFD6B3D8FBC641079A6ABABF5BD827BD9BF62
が表示されたらOKです
-
gpg
公開鍵の検証をするときに使用するコマンドです -
--dry-run
実際には鍵をインポートせず、テスト実行だけを行います -
--quiet
出力メッセージを最小限に抑え、成功時は何も表示されず、エラーがある場合にのみエラーメッセージを出力します -
--import
通常、GPG鍵をインポートするオプションですが、今回は --dry-run を指定しているため、実際にはインポートはされないです -
--import-options import-show
インポートする鍵の情報を表示します(例: 鍵のフィンガープリントや有効期限など)
リポジトリの追加
echo "deb [signed-by=/usr/share/keyrings/nginx-archive-keyring.gpg] \
http://nginx.org/packages/ubuntu `lsb_release -cs` nginx" \
| sudo tee /etc/apt/sources.list.d/nginx.list
echo "deb [signed-by=/usr/share/keyrings/nginx-archive-keyring.gpg]
UbuntuがNginxの公式リポジトリを信頼できるように、署名鍵(GPGキー)の保存場所を指定します
http://nginx.org/packages/ubuntu `lsb_release -cs` nginx"
Nginxの公式リポジトリURLに、現在のUbuntuのバージョン(lsb_release -cs の結果)を自動で挿入し、対応するNginxパッケージを取得します
sudo tee /etc/apt/sources.list.d/nginx.list
/etc/apt/sources.list.d/nginx.list にリポジトリ情報を書き込みます
Nginxのインストール
Nginxの最新のStable版がインストールされます
sudo apt install nginx
Nginxのバージョン確認
インストールされたNginxのバージョンを確認することができます
nginx -v
Nginx起動、確認、停止
起動
sudo systemctl start nginx
http://localhost:80
にアクセスするとNginxの初期画面が表示できます
確認
sudo systemctl status nginx
activate
でしたら起動できています
停止
sudo systemctl stop nginx
このコマンドの後にsudo systemctl status nginx
のコマンドで確認していただくと、inactive (dead)
となっており、停止したことが確認できます
まとめ
無事にNginxの1.26.3のバージョンをインストールすることができました。