php-fpm
(FastCGI Process Manager
,FastCGI
进程管理器)
市面上有多种实现了FastCGI
功能的进程管理器,php-fpm
是官方提供的,而且也是最优秀的一个。
php-fpm
会监听端口,一般默认监听9000
端口,并且是监听本机,也就是只接收来自本机的端口请求。
1、假设我们的文档存放目录是/usr/local/var/www
,我们在此目录下编写一个index.php
文件,内容如下:
<?php
echo "Hello PHP";
?>
2、启动php-fpm
服务:
php-fpm
3、在nginx.conf
配置文件增加如下配置:
http {
server {
listen 8080;
server_name localhost;
location ~ \.php$ {
root /usr/local/var/www;
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
}
}
}
说明:
http { }
表示此服务通过HTTP协议通信。server { }
表示这是一个独立的服务。listen 8080
表示该服务监听8080
端口。location ~ \.php$ { }
用来匹配请求的URI中的path,这里表示path的后缀是.php
都被匹配。root /usr/local/var/www
表示到该目录下找需要的资源。fastcgi_pass 127.0.0.1:9000
表示将进入到该location内的请求转发到本机的9000端口,交由php-fpm处理。fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name
是动态添加了一行FastCGI配置, 配置的内容为SCRIPT_FILENAME,告知php-fpm它需要处理的脚本文件的具体路径, 由于我的nginx中只有fastcgi_params文件,没有fastcgi.conf文件, 所以要使php-fpm知道SCRIPT_FILENAME的具体值,就必须要动态的添加这行配置。include fastcgi_params
是引入FastCGI配置文件。4、启动nginx
服务:
nginx
5、通过http://localhost:8080/index.php
访问此服务。