nginx+php配置在centos 6

方健發表於2015-08-16
yum install php  
yum install php-fpm
yum instal nginx 
vi /etc/nginx/conf.d/default.conf

location ~ \.php$ {
     root           html;
    fastcgi_pass   127.0.0.1:9000;
    fastcgi_index  index.php;
    #fastcgi_param  SCRIPT_FILENAME  /scripts$fastcgi_script_name;
    fastcgi_param  SCRIPT_FILENAME  $document_root$fastcgi_script_name;
    include        fastcgi_params;
}
service php-fpm start
service nginx start

特別注意fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; 這行指定是php路徑。如果按照預設設定,php檔案需要放在/scripts下 參考:
http://lovelace.blog.51cto.com/1028430/1314565


這個問題花了近2個小時。重點要記的是定位問題的過程, 首先nginx伺服器起來以後,可以訪問,寫了個test.php,不會被解釋,會被下載。 啟動php-fpm,訪問test.php或者任意.php會提示“File not found.” 說明nginx的配置起作用了。但是有問題。檢視 vi /etc/php-fpm.conf 找到log位置 error_log = /var/log/php-fpm/error.log 檢視log發現並無異常。 再檢視nginx的log: tail -f /var/log/nginx/error.log 發現"FastCGI sent in stderr: "Primary script unknown"" ,猜測是指令碼沒找到,但是這時不用猜了,找到這樣標誌性的東西就可以谷歌了。

所以解決問題的基本步驟概括如下:

首先在/etc/程式名 位置找到配置檔案,
在配置檔案中找到log,
在log中找到可疑的錯誤提示,
谷歌! 

相關文章