Centos

無法讓 php-fpm 與 Nginx 一起工作

  • October 29, 2016

伺服器:CentOs x86_64

/etc/php-fpm.d/webuser1.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

/etc/nginx/conf.d/web1.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"

我怎樣才能讓它工作?

你把你的root指令放在了錯誤的地方。

root應該在server塊中定義,而不是在每個location塊中。這是最常見的 nginx 錯誤配置之一。

要解決此問題,請root從每個location塊中刪除所有指令,並將正確的root指令放在server塊中,而不是放在任何location.

您能否分享您正在測試的哪些標頭可以為您提供這些結果?看起來您只是通過瀏覽器執行 Get root (/) 請求?

如果沒有關於輸入標頭或如何測試配置的更多資訊,很可能您在配置中遇到了位置問題。

我的兩條建議是:

  1. 查看 Nginx 位置的幫助頁面。Nginx Wiki ( http://wiki.nginx.org/Configuration ) 是一個不錯的地方,如果你開始的話。此外,Martin Fjordvald 的入門 ( http://blog.martinfjordvald.com/2010/07/nginx-primer/ ) 在位置配置方面也不錯。

  2. 如果我在讓 c64p1.v.lab.gavika.com 配置工作時遇到問題,我會退回到基於 localhost 伺服器的簡單 Nginx 配置,並首先讓 localhost 配置工作。

引用自:https://serverfault.com/questions/508863