あらまし
Debian 10 に nginx と PHP をインストールしてみる。
nginx のインストール
Debian 10 (buster) - Web サーバ Nginx 構築(Nginx 公式リポジトリ使用)! - mk-mode BLOG
ユーザー権限でやってうまくいかなかった。root権限でやれって書いてあった。
あと、ufw っていうツールが入ってなかったので、それは別途インストールした。
PHP
Debian 10 (buster) - PHP インストール(Nginx と連携)! - mk-mode BLOG
phpinfo.php を nginx のドキュメントルート /usr/share/nginx/html に配置し、localhost/phpinfo.php にアクセスしても FIle not found が表示される。
test.html を 同ディレクトリに配置した場合はちゃんと表示される。
↑ドキュメントルートを /var/www/html に変えてみる
↑File not found の対処法。その前にエラーログの場所がわからなかった。
→ エラーログの場所はconfファイル(/etc/nginx/nginx.conf) に記載があり、/var/log/nginx/error.log だった。
nginx と PHP-FPM の仕組みをちゃんと理解しながら PHP の実行環境を構築する - Qiita
nginx $document_root$fastcgi_script_name と $request_filename の違い - Qiita
【2021/2/4 現在 未解決】
【2021/2/5 追記 - 解決】
nginx の設定が悪かった。
/etc/nginx/conf.d/default.conf でのドキュメントルートの設定を location / ... の下に書いていて、location ~ \.php$ ... の下ではドキュメントルートが未設定の状態となっていたようだ。
あと、phpファイルのプレフィックスは<?php じゃないとだめっぽい?
server {
root /var/www/html; #← ドキュメントルートはここに書く
location / {
# root /var/www/html; # ← 当初はここに書いていた
index index.html index.htm;
}
location ~ \.php$ {
# ここでは別のドキュメントルート設定となっていた。
}
参考サイト
PHP-FPM の エラーログの出力の仕方
https://qiita.com/renny1398/items/ee1d03f43157e315298aPHP-FPM の access.log の設定の仕方
https://qiita.com/haru/items/fe4f5a67e96b260449c5PHP-FPM の UNIX ソケットの作成方法
https://qiita.com/kawakami-kazuyoshi/items/610d1435d812beb853e2
→ ソケットのルートディレクトリが /run だからダメなのかな?と思ったけど、よく調べてみると /var/run は /run へのシンボリックリンクで関係なかった。