Nginx+PHP5-FPMでいつの間にか、PHPのファイルをアクセスした際に「Access denied.」の表示が出るようになりました。
あれっと思いましたが、調べてみたらNginxのデフォルトの/etc/nginx/sites-available/defaultに次のようなコメントがありましたので、/etc/php5/fpm/php.iniのfix.pathinfo=0としたのが原因だったようです。
fastcgi_split_path_info ^(.+\.php)(/.+)$; # # NOTE: You should have "cgi.fix_pathinfo = 0;" in php.ini # # # With php5-cgi alone: # fastcgi_pass 127.0.0.1:9000; # # With php5-fpm: fastcgi_pass unix:/var/run/php5-fpm.sock; fastcgi_index index.php; include /etc/nginx/fastcgi_params; }
このコメントは、「cgi.fix_pathinfo = 0とせよ」の意味かと思い、デフォルトでは「cgi.fix_pathinfo = 1」となっていたのを、「0」としたのがまずかったようです。デフォルトの「1」の設定にしたら、ちゃんとPHPファイルが実行されました。OSはUbuntu14.04LTS/14.10です。何故なのか、不明です。