php-fpm
1.1、php-fpm简介

php-fpmFastCGI Process ManagerFastCGI进程管理器)

市面上有多种实现了FastCGI功能的进程管理器,php-fpm是官方提供的,而且也是最优秀的一个。

php-fpm会监听端口,一般默认监听9000端口,并且是监听本机,也就是只接收来自本机的端口请求。

php-fpm通常与nginx或者Apache一起使用。

1.2、php-fpm与Nginx一起使用

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访问此服务。