nginx支持php和thinkphp

遇到問題

在linux-mint下安裝完nginx後,固然要支持php才能真正工做。但是嘗試了好久都沒有成功(之前很容易就成功了),原來是php-fpm支持方式發生了變化,我之前用的方法早已通過時了。php

詳細過程

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,socket的方式會更快。所以,nginx下的配置fastcgi_pass 127.0.0.1:9000;的方式顯然不支持socket方式。因此,只須要將其更改成fastcgi_pass unix:/var/run/php5-fpm.sock;之後,nginx就能夠正常工做了。linux

支持thinkphp

對thinkphp的支持其實主要是對.htaccess文件的支持,主要是爲了去掉index.php。實現有兩種方式,其中一種是直接引入include $path/.htaccess,另外一種是修改location / {},可是apache和nginx的.htaccess文件語法不一樣,在nginx下正確的配置是nginx

location / {
        if (!-e $request_filename) {
               rewrite  ^(.*)$  /index.php?s=$1  last;
               break;
        }

其餘

  • 多站點支持能夠連續寫也能夠各自寫在相應的server.conf中。thinkphp

  • 多域名和子域名配置時支持連寫server_name www.adc.com lol.adc.com也支持通配符*.adc.comapache

相關文章
相關標籤/搜索