Nginx で php-fpm が動作しない

Nginx で php-fpm が動作しない

サーバー: CentOs x86_64

php_fpm.conf は、

[webuser1]
listen = 127.0.0.1:9001
listen.allowed_clients = 127.0.0.1
user = webuser1
group = webuser1

pm = dynamic
pm.max_children = 15
pm.start_servers = 3
pm.min_spare_servers = 1
pm.max_spare_servers = 5
pm.max_requests = 2000

request_slowlog_timeout = 5
slowlog = /home/webuser1/tmp/logs/webuser1.slow.log

php_admin_value[error_log] = /home/webuser1/tmp/logs/webuser1.error.log
php_admin_flag[log_errors] = on

nginx.conf は、

server {
listen       80;
server_name  c64p1.v.lab.gavika.com;

#charset koi8-r;

#access_log  logs/host.access.log  main;

location / {
    root   /home/webuser1/www/public;
    index  index.html index.htm index.php;
}

error_page  404              /404.html;
location = /404.html {
    root   /usr/share/nginx/html;
}

# redirect server error pages to the static page /50x.html
#
error_page   500 502 503 504  /50x.html;
location = /50x.html {
    root   /usr/share/nginx/html;
}


# pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000
#
location ~ \.php$ {
    root           html;
    fastcgi_pass   127.0.0.1:9001;
    fastcgi_index  index.php;
#   fastcgi_param  SCRIPT_FILENAME  /scripts$fastcgi_script_name;
    fastcgi_param  SCRIPT_FILENAME  $document_root$fastcgi_script_name;
    include        fastcgi_params;
}

}

Nginx ログには次の内容が記録されています:

2013/05/18 15:21:52 [error] 2943#0: *1 FastCGI sent in stderr: "Primary script unknown"     while reading response header from upstream, client: 192.168.122.1, server: c64p1.v.lab.gavika.com, request: "GET / HTTP/1.1", upstream: "fastcgi://127.0.0.1:9001", host: "c64p1.v.lab.gavika.com"

これを動作させるにはどうすればよいですか?

答え1

root指示を間違った場所に配置しました。

rootserverブロックごとに定義するのではなく、ブロック内で定義する必要がありますlocation。これは最も一般的なnginxの設定ミス

rootこの問題を解決するには、各ブロックからすべてのディレクティブを削除し、内ではなくブロック内にlocation正しいディレクティブを配置します。rootserverlocation

答え2

これらの結果をもたらすテスト対象のヘッダーを共有していただけますか? ブラウザ経由で Get root (/) リクエストを実行しているだけのように見えますが?

入力ヘッダーや構成のテスト方法に関する詳細情報がない場合、構成内の場所の問題が発生している可能性が高くなります。

私のアドバイスは2つあります。

1) Nginx の場所に関するヘルプページを確認してください。Nginx Wiki (http://wiki.nginx.org/設定) は初心者には良い本です。また、Martin Fjordvald の入門書 (http://blog.martinfjordvald.com/2010/07/nginx-primer/) はロケーション構成に適しています。

2) c64p1.v.lab.gavika.com 構成が機能しない場合は、ローカルホスト サーバーに基づくシンプルな Nginx 構成にフォールバックし、まずローカルホスト構成を機能させます。

関連情報