data-id="1190000005042321" data-license="cc">
遇到問題
在linux-mint下安裝完nginx後,當然要支援php才能真正工作。可是嘗試了很久都沒有成功(以前很容易就成功了),原來是php-fpm支援方式發生了變化,我以前用的方法早已經過時了。
詳細過程
nginx無論是用apt方式還是用編譯方式都不麻煩,所以直接記錄php-fpm的配置。
按照以前的思想,php-fpm工作在127.0.0.1:9000連接埠上,我直接配置後卻出現了502 Bad GateWay頁面。
查看nginx記錄檔,發現錯誤是無法串連到本機9000連接埠。於是尋找php-fpm.conf,在其兄弟檔案夾pool.d下發現www.conf,關鍵一句開啟是這樣的listen = /var/run/php5-fpm.sock,通過查閱資料得知php-fpm有兩種工作方式,一種是利用tcp,另一種直接使用socket,scoket的方式會更快。因此,nginx下的配置fastcgi_pass 127.0.0.1:9000;的方式顯然不支援socket方式。所以,只需要將其更改為fastcgi_pass unix:/var/run/php5-fpm.sock;以後,nginx就可以正常工作了。
支援thinkphp
對thinkphp的支援其實主要是對.htaccess檔案的支援,主要是為了去掉indexphp。實現有兩種方式,其中一種是直接引入include $path/.htaccess,另一種是修改 location / {},但是apache和nginx的.htaccess檔案文法不同,在nginx下正確的配置是
location / { if (!-e $request_filename) { rewrite ^(.*)$ /index.php?s=$1 last; break; }
其他
以上就介紹了nginx支援php和thinkphp,包括了方面的內容,希望對PHP教程有興趣的朋友有所協助。