子持ちプログラマーの日記

子持ちのプログラマーがWeb関連の技術、育児、ガンプラのことを書くブログ

【nginx】PHPの設定ではまる

前回PHPの設定をしましたが、ハマったところがあったので忘れないようにメモしておきます。


default.confにサンプルがあったのでコメント外してrootの部分を変更して追記した。

server {
        listen 80;
        server_name example1.com;
        access_log  /var/log/nginx/example1.com.access.log;
        location / {
                root   /usr/share/nginx/example1.com;
                index  index.php index.html index.htm;
        }

        location ~ \.php$ {
                root           /usr/share/nginx/example1.com;
                fastcgi_pass   127.0.0.1:9000;
                fastcgi_index  index.php;
                fastcgi_param  SCRIPT_FILENAME  /scripts$fastcgi_script_name;
                include        fastcgi_params;
        }
}

再起動して、確認したところエラーがでた。
エラーログを見てみると以下のメッセージがでた。

FastCGI sent in stderr: "Primary script unknown" while reading response header from upstream, client: 192.168.56.1, server: example1.com, request: "GET /index.php HTTP/1.1"

調べてみると、fastcgi_paramの設定がおかしいとのこと。
以下のように変更。

- fastcgi_param  SCRIPT_FILENAME  /scripts$fastcgi_script_name;
+ fastcgi_param SCRIPT_FILENAME $document_root/$fastcgi_script_name;

これで再起動したら、正常に表示されるようになりました。