配置nginx支持PHP

时间:2024-04-17 07:58:46

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