Ubuntu 24.04LTS へ Nginx (OS 標準リポジトリ) + PHP-FPM をインストールする
以前に下記のメモを書きました。
今回は Ubuntu 24.04LTS へ (Nginx 公式リポジトリでは無く) OS 標準リポジトリから Nginx をインストールし、併せて PHP-FPM をインストールする手順をメモしておきます。
検証環境¶
Ubuntu 標準リポジトリからインストール可能な Nginx バージョンは 1.24.0 でした。
対象 | バージョン |
---|---|
Ubuntu | 24.04LTS |
PHP-FPM | 8.3 |
Nginx (Ubuntu 標準リポジトリ) | 1.24.0 |
「OS 標準リポジトリ版」と「Nginx 公式リポジトリ版」の差分¶
Nginx は「OS 標準リポジトリ版」と「Nginx 公式リポジトリ版」で以下のような差分があるようです。
バージョンの差¶
OS 標準リポジトリ版 | Nginx 公式リポジトリ版 | |
---|---|---|
バージョン | 1.24.0 | 1.26.1 |
A. OS 標準リポジトリ版¶
# apt info nginx
Package: nginx
Version: 1.24.0-2ubuntu7
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: 1352 kB
Provides: httpd, httpd-cgi, nginx-abi-1.24.0-1
Depends: libc6 (>= 2.34), libcrypt1 (>= 1:4.1.0), libpcre2-8-0 (>= 10.22), libssl3 (>= 3.0.0), zlib1g (>= 1:1.1.4), iproute2, nginx-common (= 1.24.0-2ubuntu7)
Breaks: nginx-core (<< 1.22.1-6~), nginx-extras (<< 1.22.1-6~), nginx-light (<< 1.22.1-6~)
Replaces: nginx-core (<< 1.22.1-6~), nginx-extras (<< 1.22.1-6~), nginx-light (<< 1.22.1-6~)
Homepage: https://nginx.org
Download-Size: 521 kB
APT-Manual-Installed: yes
APT-Sources: http://archive.ubuntu.com/ubuntu noble/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.
B. Nginx 公式リポジトリ版¶
# apt info nginx
Package: nginx
Version: 1.26.1-2~noble
Priority: optional
Section: httpd
Maintainer: NGINX Packaging <nginx-packaging@f5.com>
Installed-Size: 3640 kB
Provides: httpd, nginx, nginx-r1.26.1
Depends: libc6 (>= 2.34), libcrypt1 (>= 1:4.1.0), libpcre2-8-0 (>= 10.22), libssl3t64 (>= 3.0.0), zlib1g (>= 1:1.1.4), lsb-base (>= 3.0-6)
Recommends: logrotate
Conflicts: nginx-common, nginx-core
Replaces: nginx-common, nginx-core
Homepage: https://nginx.org
Download-Size: 1125 kB
APT-Manual-Installed: yes
APT-Sources: http://nginx.org/packages/ubuntu noble/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.
N: There are 3 additional records. Please use the '-a' switch to see them.
ディレクトリ構造の差¶
Apache 同様に「OS 標準リポジトリ版」には modules-available
、modules-enabled
、sites-available
、sites-enabled
などのディレクトリが存在します。
A. OS 標準リポジトリ版¶
# tree /etc/nginx
/etc/nginx
├── conf.d
├── fastcgi.conf
├── fastcgi_params
├── koi-utf
├── koi-win
├── mime.types
├── modules-available
├── modules-enabled
├── nginx.conf
├── proxy_params
├── scgi_params
├── sites-available
│ └── default
├── sites-enabled
│ └── default -> /etc/nginx/sites-available/default
├── snippets
│ ├── fastcgi-php.conf
│ └── snakeoil.conf
├── uwsgi_params
└── win-utf
7 directories, 14 files
B. Nginx 公式リポジトリ版¶
# tree /etc/nginx
/etc/nginx
├── conf.d
│ └── default.conf
├── fastcgi_params
├── mime.types
├── modules -> /usr/lib/nginx/modules
├── nginx.conf
├── scgi_params
└── uwsgi_params
3 directories, 6 files
実行ユーザ/グループの差¶
Nginx の実行ユーザに差があります。
OS 標準リポジトリ版 | Nginx 公式リポジトリ版 | |
---|---|---|
Nginx 実行ユーザ | nginx |
www-data |
Nginx 実行グループ | (明示的な設定は無し) | (明示的な設定は無し) |
PHP-FPM 実行ユーザ | www-data |
www-data |
PHP-FPM 実行グループ | www-data |
www-data |
A. OS 標準リポジトリ版¶
# grep -e ^user -e ^group /etc/nginx/nginx.conf
user www-data;
# grep -e ^user -e ^group /etc/php/8.3/fpm/pool.d/www.conf
user = www-data
group = www-data
B. Nginx 公式リポジトリ版¶
# grep -e ^user -e ^group /etc/nginx/nginx.conf
user nginx;
# grep -e ^user -e ^group /etc/php/8.3/fpm/pool.d/www.conf
user = www-data
group = www-data
起動状態の差¶
インストール直後の起動状態にも差があります。
OS 標準リポジトリ版 | Nginx 公式リポジトリ版 | |
---|---|---|
インストール直後の起動状態 | 起動 | 停止 |
A. OS 標準リポジトリ版¶
# systemctl status nginx
● nginx.service - A high performance web server and a reverse proxy server
Loaded: loaded (/usr/lib/systemd/system/nginx.service; enabled; preset: enabled)
Active: active (running) since Sun 2024-07-21 15:44:04 JST; 29min ago
Docs: man:nginx(8)
Process: 7434 ExecStartPre=/usr/sbin/nginx -t -q -g daemon on; master_process on; (code=exited, status=0/SUCCESS)
Process: 7436 ExecStart=/usr/sbin/nginx -g daemon on; master_process on; (code=exited, status=0/SUCCESS)
Main PID: 7437 (nginx)
Tasks: 2 (limit: 4658)
Memory: 1.7M (peak: 1.9M)
CPU: 11ms
CGroup: /system.slice/nginx.service
├─7437 "nginx: master process /usr/sbin/nginx -g daemon on; master_process on;"
└─7438 "nginx: worker process"
Jul 21 15:44:04 localhost systemd[1]: Starting nginx.service - A high performance web server and a reverse proxy server...
Jul 21 15:44:04 localhost systemd[1]: Started nginx.service - A high performance web server and a reverse proxy server.
B. Nginx 公式リポジトリ版¶
# systemctl status nginx
○ nginx.service - nginx - high performance web server
Loaded: loaded (/usr/lib/systemd/system/nginx.service; enabled; preset: enabled)
Active: inactive (dead)
Docs: https://nginx.org/en/docs/
Nginx と PHP-FPM のインストール¶
Nginx と PHP-FPM をインストールします。
apt -y install nginx php8.3-fpm
systemctl status nginx php8.3-fpm
を実行して正常にインストールが完了したことを確認しておきます。
# systemctl status nginx php8.3-fpm
● nginx.service - A high performance web server and a reverse proxy server
Loaded: loaded (/usr/lib/systemd/system/nginx.service; enabled; preset: enabled)
Active: active (running) since Sun 2024-07-21 15:44:04 JST; 14s ago
Docs: man:nginx(8)
Process: 7434 ExecStartPre=/usr/sbin/nginx -t -q -g daemon on; master_process on; (code=exited, status=0/SUCCESS)
Process: 7436 ExecStart=/usr/sbin/nginx -g daemon on; master_process on; (code=exited, status=0/SUCCESS)
Main PID: 7437 (nginx)
Tasks: 2 (limit: 4658)
Memory: 1.7M (peak: 1.9M)
CPU: 11ms
CGroup: /system.slice/nginx.service
├─7437 "nginx: master process /usr/sbin/nginx -g daemon on; master_process on;"
└─7438 "nginx: worker process"
Jul 21 15:44:04 localhost systemd[1]: Starting nginx.service - A high performance web server and a reverse proxy server...
Jul 21 15:44:04 localhost systemd[1]: Started nginx.service - A high performance web server and a reverse proxy server.
● php8.3-fpm.service - The PHP 8.3 FastCGI Process Manager
Loaded: loaded (/usr/lib/systemd/system/php8.3-fpm.service; enabled; preset: enabled)
Active: active (running) since Sun 2024-07-21 15:44:06 JST; 13s ago
Docs: man:php-fpm8.3(8)
Process: 7460 ExecStartPost=/usr/lib/php/php-fpm-socket-helper install /run/php/php-fpm.sock /etc/php/8.3/fpm/pool.d/www.conf 83 (code=exit>
Main PID: 7457 (php-fpm8.3)
Status: "Processes active: 0, idle: 2, Requests: 0, slow: 0, Traffic: 0req/sec"
Tasks: 3 (limit: 4658)
Memory: 7.6M (peak: 8.3M)
CPU: 38ms
CGroup: /system.slice/php8.3-fpm.service
├─7457 "php-fpm: master process (/etc/php/8.3/fpm/php-fpm.conf)"
├─7458 "php-fpm: pool www"
└─7459 "php-fpm: pool www"
Jul 21 15:44:06 localhost systemd[1]: Starting php8.3-fpm.service - The PHP 8.3 FastCGI Process Manager...
Jul 21 15:44:06 localhost systemd[1]: Started php8.3-fpm.service - The PHP 8.3 FastCGI Process Manager.
Apach 風ドキュメントルートのリンクを追加する¶
Apache 風のドキュメントルートとして /var/www/html
も使えるようにシンボリックリンクを作成します。
mkdir -p /var/www/ &&
rm -rf /var/www/html/ &&
ln -s /usr/share/nginx/html /var/www/
設定ファイルの修正¶
Nginx¶
Nginx で PHP が利用出来るように修正します。 Nginx の設定ファイルである /etc/nginx/sites-available/default
を以下のように修正します。
修正前 (コメント除去版)¶
1 2 3 4 5 6 7 8 9 10 |
|
修正後¶
1 2 3 4 5 6 7 8 9 10 11 12 13 14 |
|
Nginx の設定ファイルをエラーチェックする¶
Nginx の設定ファイルの構文上、エラーが無いことを確認します。 nginx -t
を実行し、以下のように test is successful
になることを確認します。 何某かのエラーが発生している場合はエラーの内容を参考にトラブルシューティングします。
# nginx -t
nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful
Nginx を再起動する¶
Nginx 設定ファイルへの修正を反映する為に Nginx を再起動しておきます。
sudo systemctl restart nginx
テスト用の PHP ファイル¶
PHP の動作確認を行う為に /var/www/html/index.php
を以下の内容で作成します。
1 2 3 |
|
Web ブラウザで http://10.0.0.1/
のようにアクセスし、以下のような画面が表示されれば成功です。
参考¶
デフォルトの設定ファイル¶
/etc/nginx/sites-available/default
¶
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 |
|
/etc/systemd/system/multi-user.target.wants/nginx.service
¶
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 |
|
/etc/systemd/system/multi-user.target.wants/php8.3-fpm.service
¶
1 2 3 4 5 6 7 8 9 10 11 12 13 14 |
|
ディレクトリ単位の差分¶
ディレクトリ単位での比較結果は以下の通りです。
nginx1 | nginx2 | |
---|---|---|
対象リポジトリ | OS 標準 | Nginx 公式 |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 |
|