【问题标题】:Docker for nginx and php-fpm用于 nginx 和 php-fpm 的 Docker
【发布时间】:2017-08-14 14:51:31
【问题描述】:

我开始使用 Dockerdocker-compose

我的第一步是构建一个包含 2 个容器的堆栈:1 个用于 nginx,1 个用于 php-fpm

有了这个配置,它就可以工作了

version: '3.3'
services:
    web:
        image: nginx
        ports:
            - "9090:80"
        volumes:
            - ./conf/default.conf:/etc/nginx/conf.d/default.conf:ro
            - ./content:/usr/share/nginx/html:ro
        links:
            - php
    php:
        image: php:7.1.8-fpm
        volumes:
            - ./content:/usr/share/nginx/html:ro

/content 我有index.htmlphpinfo.php

我可以在浏览器中获取这两个页面。

但我不明白为什么我必须将所有页面都放在两个容器中?

如果我不为php service 设置音量,则显示index.html 但不显示phpinfo.php(找不到文件。)

如果我不为web service 设置音量,则会显示 nginx index.html 但不显示 phpinfo.php(404 错误)。

所以现在如果我想部署一个 wordpress 站点,我将不得不复制两个容器中的所有文件?

【问题讨论】:

    标签: php docker nginx ubuntu-14.04 docker-compose


    【解决方案1】:

    配置错误。好的做法是将所有进程分开,所以你应该有 3 个服务:nginx、php-fpm 和 php。源代码应该只在 php 容器内。

    【讨论】:

    • 好的,谢谢。那么php容器应该是数据容器吧?
    • 是的,PHP 用于数据,PHP-fpm 类似于 php 和 nginx 之间的“桥梁”,NGINX 处理请求。
    • @mitch,实际上有 2 个服务,nginx 和 php +fpm,因为 php 和 fpm 需要在同一个容器中。所以你可能可以更新答案
    • 这个答案对我来说毫无意义,我不确定它为什么被接受。我是不是误会了,你能澄清一下吗? php-fpm"a FastCGI implementation for PHP" - 你确实需要它一个 PHP 服务,这就是你的建议。因此,带有 2 个容器的 OP 配置是正确的 - 或者至少是一个完全有效的选项。并且 OP 已经解释说,仅在 PHP 容器中(或实际上两者中的任何一个)都有数据是行不通的……@tweetysat 也许你可以评论,你接受这个 bcs 它实际上解决了你的问题吗?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2017-12-13
    • 1970-01-01
    • 2022-09-26
    • 2021-10-17
    • 1970-01-01
    • 2021-04-02
    • 2021-03-30
    相关资源
    最近更新 更多