簡體   English   中英

如何在 docker 容器上部署 php-fpm 並在本地主機上部署 apache/nginx (Ubuntu)

[英]How to deploy php-fpm on docker container and apache/nginx on localhost (Ubuntu)

我們可以將 apache 和 php 部署在單獨的 docker 容器中,然后將它們鏈接起來。

但是有沒有辦法在本地安裝apache(使用apt-get install apache2)和docker容器中的php-fpm然后鏈接它們?

謝謝

是的。 由於您在 Apache使用了 php-fpm(而不是 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 版本的非常巧妙的方法。 只需將每個 php-fpm 容器暴露在不同的端口(可能是 9001、9002 等)。

您可以構建自己的映像,並在 Dockerfile 中apt install...

但這里也有一張帶有 apache + php-fpm 的官方圖片: https ://hub.docker.com/_/php

所以你不必。 它准備好了。


但我相信它可以通過公開你的php-fpm端口並將你的 apache FastCgiExternalServer 配置到這個端口而不是 unix 套接字來工作。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM