やりたいこと
先日、下記にて RTMP サーバを構築したが、nginx ってデフォルトでは PHP は使えない。
なので、PHP も使えるようにする。
手順概要
- Nginx のインストール
- PHP 関連のインストール
- 設定ファイル(nginx.conf)の変更
- Nginx の再起動
- 実際に PHP が動作するかテスト
Nginx のインストール
ほんと、今はとても簡単。
以下のコマンドでOK
$ sudo apt install nginx
これだけで必要最低限は動作するようになってしまうのだから…
あとはどう使いたいかでいろいろ設定が変わるので、そこはまた別途調べるなりなんなりで。
PHP 関連のインストール
これもまた簡単。
以下のコマンドを打って少し待つだけ。
$ sudo apt install php php-fpm
mysql (maridaDb) をインストールして WordPress を使うんだ!という場合は下記も追加。
$ sudo apt install php-mysql
まぁ、これはすべてまとめて書いてもいいよね。 sudo apt install php php-fpm php-mysql と。
インストール出来たかどうかは下記のようにすれば確認できる。
まずは PHP の確認。
$ php -v
PHP 8.3.6 (cli) (built: Sep 30 2024 15:17:17) (NTS)
Copyright (c) The PHP Group
Zend Engine v4.3.6, Copyright (c) Zend Technologies
with Zend OPcache v8.3.6, Copyright (c), by Zend Technologies
続いて php-fpm の確認。
$ php-fpm8.3 -v
PHP 8.3.6 (fpm-fcgi) (built: Sep 30 2024 15:17:17)
Copyright (c) The PHP Group
Zend Engine v4.3.6, Copyright (c) Zend Technologies
with Zend OPcache v8.3.6, Copyright (c), by Zend Technologies
コマンドの応答としてはほぼ同じような内容になる。
PHP 8.3.6 の後に続く内容が違うだけだね。
てことで、PHP 関連のインストールもこれだけで、とりあえずはOK
設定ファイル(nginx.conf)の変更
Nginx に限らず PHP もだけど、本来は目的や求めるセキュリティに合わせて設定すべき項目がある。
けど、とりあえず、Nginx で PHP を動かすなら /etc/enginx/sites-enabled/default の「location」部分を変更すれば良い。
変更と言っても # を削除してコメントアウトすることと、php-fpm のバージョンに合わせて php8.3-fpm.sock の数字部分を変更するだけ。
# pass PHP scripts to FastCGI server
location ~ \.php$ {
include snippets/fastcgi-php.conf;
# With php-fpm (or other unix sockets):
fastcgi_pass unix:/run/php/php8.3-fpm.sock;
# With php-cgi (or other tcp sockets):
#fastcgi_pass 127.0.0.1:9000;
}
Nginx の再起動
以下のコマンドで Nginx を再起動。
$ sudo systemctl restart nginx.service
実行状況の確認は以下で。
$ sudo systemctl status nginx.service
● 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 Mon 2024-12-09 10:15:08 JST; 55s ago
Docs: man:nginx(8)
Process: 60283 ExecStartPre=/usr/sbin/nginx -t -q -g daemon on; master_process on; (code=exited, status=0/SUCCESS)
Process: 60287 ExecStart=/usr/sbin/nginx -g daemon on; master_process on; (code=exited, status=0/SUCCESS)
Main PID: 60288 (nginx)
Tasks: 2 (limit: 2276)
Memory: 1.7M (peak: 1.9M)
CPU: 11ms
CGroup: /system.slice/nginx.service
tq60288 "nginx: master process /usr/sbin/nginx -g daemon on; master_process on;"
mq60289 "nginx: worker process"
こんな感じで「Active」の項目が「active (running)」となっていればOK
実際に PHP が動作するかテスト
最後に PHP ファイルを用意して動作するか確認。
/var/www/html 配下に test.php (名称は任意)というような中身が下記なファイルを用意する。
<?php
phpinfo();
?>
そして、ブラウザでそのファイルにアクセス
http://[server IP address]/test.php
こんな感じでいろいろ PHP 関連の情報が表示されればOK
以上で Nginx で PHP を動かすための最低限の作業が終了。
あとは目的や環境に合わせて良しなに。
この記事にコメントしてみる