Centos
無法讓 php-fpm 與 Nginx 一起工作
伺服器: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 (/) 請求?
如果沒有關於輸入標頭或如何測試配置的更多資訊,很可能您在配置中遇到了位置問題。
我的兩條建議是:
查看 Nginx 位置的幫助頁面。Nginx Wiki ( http://wiki.nginx.org/Configuration ) 是一個不錯的地方,如果你開始的話。此外,Martin Fjordvald 的入門 ( http://blog.martinfjordvald.com/2010/07/nginx-primer/ ) 在位置配置方面也不錯。
如果我在讓 c64p1.v.lab.gavika.com 配置工作時遇到問題,我會退回到基於 localhost 伺服器的簡單 Nginx 配置,並首先讓 localhost 配置工作。