nginx解析php頁面時無法顯示出來,檢視nginx日誌,報錯資訊如上;
檢視資料
原因:在fastcgi_params檔案(和nginx.conf檔案在同乙個目錄下)裡定義了許多與fastcgi程式相關的變數,當nginx通過fastcgi介面傳送請求時它要去定義好的地方去解析相應的變數值,然後交給php去處理,很顯然,如果fastcgi獲取不了相應的值,那麼他就無法把相應請求**給php程式,自然無法解析。
這個問題的關鍵在於"primary script unknown」主指令碼未知,也就是fastcgi程式無法找到定義的要執行的指令碼,預設的配置檔案fastcgi_params定義的變數中並沒有$fastcgi_script_name這個變數,但是在fastcgi.conf裡定義了。所以我們要麼包含這個fastcgi.conf檔案,要麼把fastcgi_params裡的script_filename 構建成和fastcgi.conf裡的值一樣,加上$document_root引數(這個引數的值就代表站點目錄root那一行的值)。
解決方案1
在配置最後一行包含fastcgi.conf配置檔案,結果如下
1 location ~ \.php$
解決方案2
把fastcgi_param script_filename /scripts$fastcgi_script_name;這一行,改為:fastcgi_param script_filename $document_root$fastcgi_script_name;
1 location ~ \.php$
nginx關閉php報錯頁面顯示
預設情況下nginx是會顯示php的報錯的,如果要關閉報錯顯示,需要在 usr local php7 etc php fpm.d www.conf檔案裡面設定,貌似預設情況下在php.ini關閉沒效果,如下設定就可以了 php flag display errors off 關閉在頁面顯示php錯誤...
Nginx解析PHP指令碼的過程
之前專案中碰到了一些php fpm的問題 因為 的一些介面,在特定情況下響應特別慢 1 2分鐘 遲遲不結束,導致php fpm數量越來越多,最後到達127個後,伺服器就沒能響應正常請求了,瀏覽器一直打轉,遲遲不響應。把介面修好後,php fpm程序的數量就穩定了,問題得以解決。這讓我對php fpm...
Nginx與Apache解析php檔案的區別
一 apache是如何解析php檔案的 我們常說的lamp架構是linux apache mysql php,我們知道任何架構或者 離不開資料庫的支援,那麼php和apache又是如何協同工作的呢?php是apache的乙個外掛程式,必須依靠web伺服器才可以執行。當客戶端瀏覽器觸發事件 php程式...