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

相关文章
相关标签/搜索