https://stackoverflow.com/questions/15423500/nginx-showing-blank-php-pagesphp
For reference, I am attaching my location
block for catching files with the .php
extension:html
location ~ \.php$ { include /path/to/fastcgi_params; fastcgi_pass 127.0.0.1:9000; fastcgi_index index.php; fastcgi_param SCRIPT_FILENAME $document_root/$fastcgi_script_name; }
Double-check the /path/to/fastcgi-params
, and make sure that it is present and readable by the nginx user.nginx
因爲nginx與php-fpm之間的一個小bug,會致使這樣的現象: 網站中的靜態頁面 *.html 都能正常訪問,而 *.php 文件雖然會返回200狀態碼, 但實際輸出給瀏覽器的頁面內容倒是空白。 簡而言之,緣由是nginx沒法正確的將 *.php 文件的地址傳遞給php-fpm去解析, 至關於php-fpm接受到了請求,但這請求卻指向一個不存在的文件,因而返回空結果。 爲了解決這個問題,須要改動nginx默認的fastcgiparams配置文件: vi /etc/nginx/fastcgi_params 在文件的最後增長兩行: 瀏覽器
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
fastcgi_param PATH_INFO $fastcgi_script_name;php-fpm
而後重啓一下服務:網站
service php5-fpm reload service nginx reload //從新加載各項配置改動。
spa
https://wildlyinaccurate.com/solving-502-bad-gateway-with-nginx-php-fpm/rest
升級php-fpm後,個人基於PHP的站點返回「502 Bad Gateway」錯誤。當php5-fpm軟件包從新配置本身以偵聽不一樣的套接字時,就會發生這種狀況。這是你如何解決它。code
檢查以確保php-fpm正在運行 ps aux | grep php
- 若是你在輸出中看不到任何php-fpm進程,那麼你可能須要從新安裝php-fpm。若是php-fpm運行正常,那麼跳過第一步。htm
sudo apt-get remove php5 php5-cgi php5-fpm sudo apt-get install php5 php5-cgi php5-fpm
這裏須要注意的是,安裝軟件包的順序很重要。在過去,我發現以錯誤的順序安裝它們會致使包配置錯誤。
接下來,獲取php-fpm以偵聽正確的主機/端口。在/etc/php5/fpm/pool.d/www.conf
變化的listen
值以匹配fastcgi_pass
您的Nginx的配置位置。例如,我改變了個人意見:
listen = /var/run/php5-fpm.sock
至:
listen = 127.0.0.1:9000
若是您正在配置php-fpm以偵聽Unix套接字,則還應檢查套接字文件是否具備正確的全部者和權限。雖然我不推薦它,但您能夠簡單地爲全部人提供讀寫權限sudo chmod go+rw /var/run/php5-fpm.sock
。
重啓php-fpm,sudo service php5-fpm restart
一切都應該正常工做。