是的。由于您使用的PHP-FPM与Apache ,你应该(而不是mod_php的),你会在你的基于多克的Apache站点配置类似于此:
<FilesMatch \.php$>
SetHandler "proxy:fcgi://php-fpm-container:9000"
</FilesMatch>
Run Code Online (Sandbox Code Playgroud)
当 php-fpm 和 apache 在单独的 docker 容器中运行时,上述方法有效;php-fpm-container指的是 php-fpm 容器。
只要您的 Docker php-fpm 容器向主机公开端口 9000,Apache 就不会知道或关心它是从主机还是从 docker 内部提供服务。
您的 apache 站点配置需要修改为指向本地主机:
<FilesMatch \.php$>
SetHandler "proxy:fcgi://localhost:9000"
</FilesMatch>
Run Code Online (Sandbox Code Playgroud)
顺便说一句,这是在一台主机和一台 Apache 服务器上运行多个不同 PHP 版本的一种非常巧妙的方法。只需在不同的端口(可能是 9001、9002 等)上公开每个 php-fpm 容器。
您可以构建自己的镜像,并在 Dockerfile 中apt install ...
但这里还有一个带有 apache + php-fpm 的官方镜像: https: //hub.docker.com/_/php
所以你不必这样做。准备好了。
但我相信它可以通过暴露你的php-fpm端口并将你的 apache FastCgiExternalServer 配置到这个端口而不是 unix 套接字来工作。
| 归档时间: |
|
| 查看次数: |
5198 次 |
| 最近记录: |