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 里边也不需要:
SetHandler "proxy:fcgi://php-fpm:9000"

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

这一行放在你的 vhost.conf 的 里.

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

你可能感兴趣的:(Apache + php-fpm)