启用FastCGI+php-fpm功能,让httpd能够解析php代码

1.安装软件

# yum -y install httpd
# yum -y install php-fpm

2.建立主页目录及主页文件

# mkdir -p /data/lql
# vim /data/lql/index.php
  添加:
Welcome to 2019 Computer Network Application contest!<?php phpinfo();?>

3.配置文件

# vim /etc/httpd/conf.d/lql.conf
  添加:
Listen 192.168.10.2:80
<VirtualHost 192.168.10.2:80>
        ServerName www.lql.com
        DocumentRoot "/data/lql"
        DirectoryIndex index.php
        ProxyPassMatch ^/(.*\.php)$ fcgi://127.0.0.1:9000/data/lql/$1
        <Directory /data/lql>
                Require all granted
        </Directory>
</VirtualHost>

4.修改全局配置文件

# vim /etc/httpd/conf/httpd.conf
    #Listen 80      //注释掉总配置文件监听的所有80端口,不然会与上面配置监听起冲突
  添加:
LoadModule proxy_module modules/mod_proxy.so
LoadModule proxy_fcgi_module modules/mod_proxy_fcgi.so

5.启动服务

# systemctl start php-fpm
# systemctl start httpd

注:

ProxyPassMatch

  • ProxyPassMatch 只有满足特定正则模式的内容才会匹配并执行此规则,这里的模式是, ^/(..php(/.)?)$ 从网站(虚拟主机 <VirtualHost > 的根目录开始,匹配任何以 .php 结尾,或者在 .php 之后紧跟一个 / 再跟别的内容的路径。

  • ^ (caret) 和 $ (dollar) 标志要匹配的路径的开始和结束

  • ( ) 括号里的内容可以用 $1 来表示,以方便后面引用它。

  • fcgi://127.0.0.1:9000 通过 mod_proxy_fcgi 来转发的代理,使用 fastCGI 协议,转到 PHP-FPM 监听的端口。 改变 IP 地址和/或端口号就可以要转到的不同的 pool。用这个可以实现服务器分流、均衡等。

  • /data/lql/ 非常重要!必须与虚拟主机的路径匹配,且必须是对应 php 文件在操作系统中的绝对路径。否则会找不到文件(PHP Script File)。这也是 URL 地址重写的目的所在:将 URL 地址转换成 fcgi://127.0.0.1:9000 后面紧跟着的 php 文件绝对路径

  • $1 可以从原始请求扩展成整个请求路径的变量,这里指代前面外围 ( ) 里面匹配的那个路径(uri)

猜你喜欢

转载自blog.csdn.net/l876460925/article/details/127411571