nginx自己不支持php。若是须要使用php,须要安装php解析服务,如php-fpm,或spawn-fcgi等。从在Ubuntu上配置的便捷性考虑,此次使用php-fpm实现。php
安装php和php-fpm
安装方法,略……html
由于能够直接用包管理器安装。nginx
安装后须要启动服务。git
修改nginx配置文件
修改配置文件/etc/nginx/sites-available/default,首先让让默认页面里有php文件:github
index index.php index.html index.htm;
接着开启php支持,找到“location ~ .php”部分,将其中的注释进行修改:web
location ~ \.php$ { fastcgi_split_path_info ^(.+\.php)(/.+)$; # NOTE: You should have "cgi.fix_pathinfo = 0;" in php.ini # With php5-cgi alone: # fastcgi_pass 127.0.0.1:9000; # With php5-fpm: fastcgi_pass unix:/var/run/php5-fpm.sock; fastcgi_index index.php; include fastcgi_params; }
“fastcgi_pass 127.0.0.1:9000;”与spawn-fcgi有关,故要注释。修改配置文件后须要重启nginx服务。服务器
原理
按网上的说法:“nginx自己不能处理PHP,它只是个web服务器,当接收到请求后,若是是php请求,则发给php解释器处理,并把结果返回给客户端。nginx通常是把请求发fastcgi管理进程处理,fascgi管理进程选择cgi子进程处理结果并返回被nginx”。也就是说,nginx将处理请求交给php5-fpm,再接收处理返回结果。php-fpm
参考
http://www.nginx.cn/231.htmlpost