Ubuntu 24.04にnginxを導入する。
概要
好みはapacheではありますが、セットアップしたばかりのUbuntuサーバの性能を鑑みてnginxを入れていきます。
さっくりとした手順
- インストールに必要なパッケージを入れます。
- nginxのリポジトリーを追加します。
- インストールを行います。
- 基本的な設定を行います。
必要なパッケージの導入とリポジトリー追加
- 必要なパッケージの導入
sudo aptitude install curl gnupg2 ca-certificates lsb-release
- リポジトリ追加
echo "deb http://nginx.org/packages/ubuntu/ $(lsb_release -cs) nginx" | sudo tee /etc/apt/sources.list.d/nginx.list
curl -fsSL https://nginx.org/keys/nginx_signing.key | sudo apt-key add -
nginxインストール
- パッケージのアップデート
sudo aptitude update
- nginxインストール
sudo aptitude install nginx
- インストール確認
nginx -v
nginx version: nginx/1.26.2
を確認します。(2024/10/25現在)
- サービス起動
sudo systemctl start nginx.service
- サービス起動確認
systemtl status nginx.service
active(running)
を確認します。
初期設定(オプション)
ここからは筆者の好みの問題です。
オプション:nginxの実行をwww-dataに変更する
- ファイルバックアップ
sudo cp -pi /etc/nginx/nginx.conf /path/to/backup/directory/nginx.conf.$(date +%Y%m%d)
任意のバックアップディレクトリを指定します。
- ファイルバックアップ確認
diff -u /path/to/backup/directory/nginx.conf.$(date +%Y%m%d) /etc/nginx/nginx.conf
差分がなければバックアップは成功です。
- ファイル書き換え
sudo sed -i 's/user nginx;/user www-data;/g' /etc/nginx/nginx.conf
- ファイル書き換え確認
diff -u /path/to/backup/directory/nginx.conf.$(date +%Y%m%d) /etc/nginx/nginx.conf
以下の差分を確認します。
-user nginx;
+user www-data;
- サービス再起動
sudo systemctl restart nginx.service
- サービス再起動確認
systemctl status nginx.service
active(running)`を確認します。
オプション:Web格納ディレクトリを作成する
- web格納ディレクトリを作成
sudo mkdir -p /home/www-data
sudo chown -R www-data:www-data /home/www-data
sudo chmod -R 755 /home/www-data
オプション:passwdファイルの書き換え
※システム全体のアカウントを制御する重要なファイルです。取り扱いは慎重に行ってください。※
- バックアップ作成
sudo cp -pi /etc/passwd /path/to/backup/directory/passwd.$(date +%Y%m%d)
任意のバックアップディレクトリを指定します。
- バックアップ作成確認
diff -u /path/to/backup/directory/passwd.$(date +%Y%m%d) /etc/passwd
エラーがなければバックアップは成功です。
- ファイル書き換え
sudo sed -i 's|/var/www|/home/www-data|' /etc/passwd
- 書き換え確認
diff -u /path/to/backup/directory/passwd.$(date +%Y%m%d) /etc/passwd
以下の差分を確認します。
-www-data:x:33:33:www-data:/var/www:/usr/sbin/nologin
+www-data:x:33:33:www-data:/home/www-data:/usr/sbin/nologin
差分がこの2つだけであることを確認できたら設定完了です。
備考
この手順ではnginxのバーチャルサイトまではサポートしていないので、後述します。