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
- httpd.conf
把 AddType application/x-httpd-php php php7 类似的行清理掉 , 这不是 php-fpm 用的.
如下类似的段落在 httpd.conf 里边也不需要:
<FilesMatch .php$> SetHandler "proxy:fcgi://php-fpm:9000" </FilesMatch>
- 正确的配置仅仅需要这一行就够了:
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个容器有共同可访问的文件地址 . 这个就不赘述了 , 用挂载等方式解决.