今天安裝完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裡包含進來。