nginx本身不支持php。如果需要使用php,需要安装php解析服务,如php-fpm,或spawn-fcgi等。从在Ubuntu上配置的便捷性考虑,这次使用php-fpm实现。
安装php和php-fpm
安装方法,略……
因为可以直接用包管理器安装。
安装后需要启动服务。
修改nginx配置文件
修改配置文件/etc/nginx/sites-available/default,首先让让默认页面里有php文件:
index index.php index.html index.htm;
接着开启php支持,找到“location ~ .php”部分,将其中的注释进行修改:
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,再接收处理返回结果。
参考
http://www.nginx.cn/231.html