今天安裝完nginx 後 發現html頁面能正常浏覽 但是php文件的頁面打開後是一篇空白 看php-fpm日志 看nginx日志都沒找到問題
上網搜索了半天終於解決了,在這做個記錄備忘
網上的一種說法是缺少這麼一句話在nginx的配置文件裡
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
這句話是干嘛的呢 其實他就是定義php中用到的服務器變量 也就是$_SERVER
http://wiki.nginx.org/NginxHttpFcgiModule 這個網址下有這麼一句話
This module allows Nginx to interact with FastCGI processes and control what parameters are passed to the process。
其實也就是服務器像你的處理php的cgi傳遞過去他需要的一些參數,而至少要有下面的兩個參數php才能執行起來
Below is an example of the minimally necessary parameters for PHP:
fastcgi_param SCRIPT_FILENAME /home/www/scripts/php$fastcgi_script_name;
fastcgi_param QUERY_STRING $query_string;
Parameter SCRIPT_FILENAME is used by PHP for determining the name of script to execute, and QUERY_STRING contains the parameters of the request.
所以 我們在沒有定義SCRIPT_FILENAME這個系統變量的時候 php是沒法解釋執行的
這個變量的定義可以寫在nginx的配置文件nginx.conf裡 也可以寫在外部 用include的方式在nginx.conf裡包含進來。