新しくインストールしたUbuntu(12.04)サーバーをセットアップしようとしていますが、php-fpmでPHPファイルを実行できません。私が何をしても、私は常に「アクセス拒否」を受け取ります。ページ(htmlなどではなくプレーンテキスト)。
インストール済みパッケージ:
nginx
nginx-common
nginx-full
php5
php5-cli
php5-common
php5-fpm
構成の詳細:
PHP-FPM:
user = www-data
group = www-data
listen = /var/run/php5-fpm.sock
Nginx:
user www-data;
worker_processes 3;
events { worker_connections 1024; }
デフォルト/テストドメイン:
server {
listen 80;
server_name localhost;
root /extra/htdocs/default;
index index.html index.php
access_log /extra/logs/default/access.log;
error_log /extra/logs/default/error.log;
location / {
try_files $uri $uri/ /index.html;
}
location ~ \.php
{
fastcgi_split_path_info ^(.+\.php)(/.+)$;
include fastcgi_params;
fastcgi_index index.php;
fastcgi_pass unix:/var/run/php5-fpm.sock;
fastcgi_param PATH_INFO $fastcgi_path_info;
fastcgi_param PATH_TRANSLATED $document_root$fastcgi_path_info;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
}
}
/extra/htdocs/default/index.php:
<?php
phpinfo();
それ以外はすべてデフォルトです。 Nginxとphp-fpmの両方のログにエラーは表示されません。しかし、http://<server-ip>/index.php
をロードすると、「アクセスが拒否されました」ページが表示されます。
トラブルシューティング:
/extra
ディレクトリ全体の所有権(ユーザーとグループの両方)をwww-data
に設定し、所有権を777に設定しました。 。だから、それは確かに権限の問題ではありません.php .html
に設定しましたが、同じ結果になりました。私は本当にこれにうんざりしており、このセットアップをすでに2回インストールしています(OSXマシン上ではありますが)、すべてが完璧に機能しました。私が見落としているものはありますか?
ログの内容:
Nginxエラーログは空です。
Nginxアクセスログ(削除されたIP):
<ip> - - [17/Jul/2012:11:21:25 +0200] "GET /favicon.ico HTTP/1.1" 304 0 "-" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_7_4) AppleWebKit/536.11 (KHTML, like Gecko) Chrome/20.0.1132.57 Safari/536.11"
<ip> - - [17/Jul/2012:11:21:28 +0200] "GET /index.php HTTP/1.1" 403 46 "-" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_7_4) AppleWebKit/536.11 (KHTML, like Gecko) Chrome/20.0.1132.57 Safari/536.11"
<ip> - - [17/Jul/2012:11:21:34 +0200] "-" 400 0 "-" "-"
php-fpmログ:
[17-Jul-2012 10:44:14] NOTICE: fpm is running, pid 4969
[17-Jul-2012 10:44:14] NOTICE: ready to handle connections
最後に修正しました。
犯人は私の設定のこの行でした:
fastcgi_param PATH_TRANSLATED $document_root$fastcgi_path_info;
この行にコメントすると、すべてが正常に機能しました。しかし、私はこれをNginxの設定について読んだほぼすべての投稿で見たので、気になりました。構成を100万回目に見ると、cgi.fix_pathinfo
(php.ini
内)が0に設定されていることがわかりました。1であるはずです。デフォルト値PHPはまた、1なので、この値について読んだことを覚えており、正しく設定されていると思ったため、デバッグ時間にこれを変更したに違いありません。
とにかく、この問題をグーグルで検索するのに役立つかもしれません。