代码之家  ›  专栏  ›  技术社区  ›  josef.van.niekerk

在Docker Compose中连接PHP-FPM和Nginx

  •  2
  • josef.van.niekerk  · 技术社区  · 7 年前

    我在摆弄Docker,试图用Nginx和PHP-FPM在单独的Alpine容器上运行来设置Docker组合。我的设置可在GitHub上获得,网址为 https://github.com/sparkbuzz/lemp_docker 我的 docker撰写。yml公司 如下所示:

    version: '3'
    services:
      alpine_nginx:
        build: ./nginx
        container_name: alpine_nginx
        links:
          - alpine_php
        ports:
          - "80:80"
    
      alpine_php:
        build: ./php
        container_name: alpine_php
        ports:
          - "9000:9000"
    

    502-坏网关 错误

    我可以 docker exec -it ... /bin/ash 在这两个正在运行的实例中,服务似乎都在愉快地运行,然而,很明显,端口9000上的PHP-FPM从未被击中。

    以下是我的控制台提供的一些反馈:

    Recreating alpine_php ...
    Recreating alpine_php ... done
    Recreating alpine_nginx ...
    Recreating alpine_nginx ... done
    Attaching to alpine_php, alpine_nginx
    alpine_php      | [06-Nov-2017 21:46:39] NOTICE: fpm is running, pid 1
    alpine_php      | [06-Nov-2017 21:46:39] NOTICE: ready to handle connections
    alpine_nginx    | 2017/11/06 21:46:46 [error] 6#6: *1 connect() failed (111: Connection refused) while connecting to upstream, client: 172.20.0.1, server: localhost, request: "GET /index.php HTTP/1.1", upstream: "fastcgi://172.20.0.2:9000", host: "localhost"
    alpine_nginx    | 172.20.0.1 - - [06/Nov/2017:21:46:46 +0000] "GET /index.php HTTP/1.1" 502 568 "-" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_13_0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/61.0.3163.100 Safari/537.36" "-"```
    

    我很接近,但不知道为什么Nginx对PHP上游不满意。Nginx配置如下:

    server {
      listen 80;
      server_name localhost;
    
      location / {
        root /var/www/localhost/htdocs/;
        index index.html;
      }
    
      location ~* \.php$ {
        fastcgi_index index.php;
        fastcgi_pass alpine_php:9000;
        include fastcgi_params;
        fastcgi_param SCRIPT_FILENAME /var/www/$fastcgi_script_name;
        fastcgi_param SCRIPT_NAME $fastcgi_script_name;
      }
    }
    

    如何让Nginx与PHP-FPM对话?

    1 回复  |  直到 7 年前
        1
  •  3
  •   nuster cache server    7 年前

    你在听我说 127.0.0.1

    将此添加到 php/Dockerfile

    RUN sed -i 's/127.0.0.1:9000/0.0.0.0:9000/g' /etc/php7/php-fpm.d/www.conf