php-fpm 即 php-Fastcgi Process Manager。
php-fpm 是 FastCGI 的实现,并提供了进程管理的功能。
进程包含 master 进程和 worker 进程两种进程。
master 进程只有一个,负责监听端口,接收来自 Web Server 的请求,而 worker 进程则一般有多个 (具体数量根据实际需要配置),每个进程内部都嵌入了一个 PHP 解释器,是 PHP 代码真正执行的地方。
配置 nginx 和 php-fpm 交互
location ~* \.php$ {
root html;
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
}
当请求的 url 能匹配以.php 结尾时,将反向代理给 php-fpm 处理动态信息。
root 是配置 php 程序放置的根目录。
fastcgi_pass 指令表示将该 url 请求代理至 nginx fastcgi 进程监听的 IP 地址和端口。
fastcgiparam 表示读取的是 $document_root(网站根目录)下的.php 文件;如果没有配置这一配置项,nginx 不会访问根目录的 php。
fastcgi_params 文件中含有各个 nginx 常量的定义,默认情况 SCRIPT_FILENAME=$fastcgi_script_name