脚本宝典收集整理的这篇文章主要介绍了

apache 与 php-fpm 几种处理方式

脚本宝典小编觉得挺不错的,现在分享给大家,也给大家做个参考,希望能帮助你少写一行代码,多一份安全和惬意。

原文地址: apache 与 php-fpm 几种处理方式

目录

<h3 id="1">1.SetHandler</h3>

  1. 在apache配置文件只部署一次
  2. 需要Apache 2.4.9以上才行
ip:port配置

php-fpm配置

listen = 127.0.0.1:9000

httpd配置

<FilesMatch .php$> setHandler "proxy:fcgi://127.0.0.1:9000" </FilesMatch>
UDS配置

php-fpm配置

listen = /var/run/php-fpm/php-fpm.sock

httpd配置

<FilesMatch .php$>     SetHandler:unix:///var/run/php-fpm/php-fpm.sock|fcgi://php-fpm     SetHandler "proxy:unix:/var/run/php-fpm/php-fpm.sock|fcgi://localhost" # Apache 2.4.10设置 </FilesMatch>

<h3 id="2">2.ProxyPassMatch</h3>

需要在每个 "VirtualHost" 里面加入

ip:port配置
<VirtualHost *:80> ProxyPassMatch ^/(.*.php(/.*)?)$ fcgi://127.0.0.1:9000/path/to/your/documentroot/$1 DirectoryIndex /index.php </VirtualHost>
  • ProxyPassMatch
    只有满足特定正则模式的内容才会匹配并执行此规则,这里的模式是,
    ^/(..php(/.)?)$

从网站(虚拟主机 <VirtualHost > 的根目录开始,匹配任何以 .php 结尾,或者在 .php 之后紧跟一个 / 再跟别的内容的路径。

  • ^ (caret) 和 $ (dollar)

标志要匹配的路径的开始和结束

  • ( )

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

  • fcgi://127.0.0.1:9000

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

  • /path/to/your/documentroot/

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

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

我本机docker容器 httpd 和 php-fpm配置
我的php-fpm在138.38.38.110 上,配置将有所不同

 <VirtualHost *:80>     ServerAdmin shenyi@com.cn     DocumentRoot "/usr/local/apache2/htdocs"     ServerName localhost     <Directory "/usr/local/apache2/htdocs">      Options None      Require all granted     </Directory>     ProxyRequests Off     ProxyPassMatch ^/(.*.php)$ fcgi://138.38.38.110:9000/var/www/htm/$1 </VirtualHost>

关于docker-compose 安装配置,看我docker compose 安装配置nginx 反向代理 httpd php-fpm
<h3 id="3">3.ProxyPass</h3>

跟ProxyPassMatch 类似 ,需要在每个 VirtualHost 中分别设置

<LocationMatch ^(.*.php)$> ProxyPass fcgi://127.0.0.1:9000/path/to/webroot/ ProxyErrorOverride on </LocationMatch>

最后感谢 http://cnzhx.net/blog/apache-...

总结

以上是脚本宝典为你收集整理的

apache 与 php-fpm 几种处理方式

全部内容,希望文章能够帮你解决

apache 与 php-fpm 几种处理方式

所遇到的程序开发问题,欢迎加入QQ群277859234一起讨论学习。如果觉得脚本宝典网站内容还不错,欢迎将脚本宝典网站推荐给程序员好友。 本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。

80%的人都看过