![](/img/trans.png)
[英]How to resolve a PHP-FPM Primary script unknown with a PHP-FPM and an Nginx Docker container?
[英]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 容器。
只要您的 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.