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

标签 php apache docker ubuntu nginx

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

但是有没有办法在本地安装apache(使用apt-get install apache2)和docker容器中的php-fpm然后链接它们?

谢谢

最佳答案

是的。由于您使用 php-fpm 和 Apache 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 站点配置将需要修改为指向 localhost:
  <FilesMatch \.php$>
    SetHandler "proxy:fcgi://localhost:9000"
  </FilesMatch>
顺便说一句,这是在一台主机和一台 Apache 服务器上运行多个不同 PHP 版本的一种非常简洁的方式。只需将每个 php-fpm 容器暴露在不同的端口(可能是 9001、9002 等)上。

关于php - 如何在 docker 容器上部署 php-fpm 并在 localhost (Ubuntu) 上部署 apache/nginx,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59862387/

相关文章:

php - 如何知道它是否通过 sql/php 中的 where 子句获得了行

php - wampserver 2 - 显示在线但不工作

php - 只有一半的页面加载

bash - 如何将docker尾入jq?

postgresql - 等待服务数据库在Docker中运行的其他服务之前运行

php - 如何在没有子类调用的情况下在父类中自动运行构造

PHP curl_setopt 无法正常工作?

基于 URL 模式的 Apache HTTP 负载均衡

python - 如何访问在我的 Windows 操作系统上的 Docker 工具箱 Linux 容器中创建的项目目录?

php - Ajax 函数显示特定 div 内提交的结果