如何在Docker容器上部署php-fpm和在localhost(Ubuntu)上部署apache / nginx

时间:2020-01-22 14:52:24

标签: php apache docker ubuntu nginx

我们可以将apache和php部署在单独的docker容器中,然后将它们链接起来。

但是有什么方法可以在docker容器中本地安装apache(使用apt-get install apache2)和php-fpm并进行链接?

谢谢

2 个答案:

答案 0 :(得分:4)

是的。由于您将 php-fpm 与 A​​pache as you should(而不是 mod_php)一起使用,因此在基于 Docker 的 Apache 站点配置中将有类似的内容:

  <FilesMatch \.php$>
    SetHandler "proxy:fcgi://php-fpm-container:9000"
  </FilesMatch>

当 php-fpm 和 apache 都在单独的 docker 容器中运行时,上述方法有效; php-fpm-container 指的是 php-fpm 容器。

在主机上运行 Apache,在 Docker 中运行 php-fpm:

只要您的 Docker php-fpm 容器向主机公开端口 9000,Apache 就不会知道或关心它是从主机还是从 docker 内部提供服务。

您的 apache 站点配置需要修改为指向本地主机:

  <FilesMatch \.php$>
    SetHandler "proxy:fcgi://localhost:9000"
  </FilesMatch>

顺便说一句,这是在一台主机和一台 Apache 服务器上运行多个不同 PHP 版本的一种非常巧妙的方法。只需在不同的端口(可能是 9001、9002 等)上公开每个 php-fpm 容器。

答案 1 :(得分:2)

您可以构建自己的映像,并且可以在Dockerfile中apt install ...

但是这里还有一个带有apache + php-fpm的官方图片:https://hub.docker.com/_/php

所以您不必。准备好了。


但是我相信它可以通过公开您的php-fpm端口并将您的Apache FastCgiExternalServer配置为该端口而不是unix套接字来起作用。