Apache + php-fpm

httpd.conf

LoadModule proxy_module modules/mod_proxy.so
LoadModule proxy_fcgi_module modules/mod_proxy_fcgi.so


httpd.conf 打开 mod_proxy 和 mod_proxy_fcgi

以下引自 https://juejin.im/post/5b6676816fb9a04fdf39ff0e

  1. httpd.conf
    把 AddType application/x-httpd-php php php7 类似的行清理掉 , 这不是 php-fpm 用的.

如下类似的段落在 httpd.conf 里边也不需要:
<FilesMatch .php$> SetHandler "proxy:fcgi://php-fpm:9000" </FilesMatch>

  1. 正确的配置仅仅需要这一行就够了:
ProxyPassMatch ^/(.*\.php(/.*)?)$ fcgi://php-fpm:9000/v/php-fpm/www/$1

这一行放在你的 vhost.conf 的 <VirtualHost> 里.

特别注意 !
我的 DocumentRoot 路径和 ProxyPassMatch 最后的路径是不匹配的 !
( DocumentRoot /v/apache/www ) apache 启动需要实际检测 DocumentRoot 路径存不存在 . 就是说 , 我的数据放在 apache 容器 , 而由 fcgi:// 把数据推过去 php-fpm 容器后 , php-fpm 容器需要读这个 /v/apache/www 路径 , 读不到, 就会报错 AH01071 . 前台页面显示的是 "File not find !"
所以 , 解决的核心思路就是让2个容器有共同可访问的文件地址 . 这个就不赘述了 , 用挂载等方式解决.

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

友情链接更多精彩内容