2017-11-06 11 views
1

Dockerを使って別のAlpineコンテナで動作するNginxとPHP-FPMを使ってDockerのコンポジションをセットアップしようとしています。DockerのNginxでPHP-FPMを接続する

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" 

を、私は成功したイメージを構築することができるよ、と私は私のブラウザではlocalhostを訪問するとき、私は見ることができます:私のセットアップは、次のように私のドッキングウィンドウ-compose.ymlが見え、https://github.com/sparkbuzz/lemp_dockerでGitHubの上で提供されていますindex.htmlはNginxによって提供されました。私は502を取得し、phpinfo.phpにアクセスしようとしたときただし、 - 不正なゲートウェイエラー

私は両方の実行中のインスタンスへdocker exec -it ... /bin/ashをすることができ、サービスは喜んで実行されているようだが、しかし、それは明らかPHP-FPMのですポート9000は決してヒットしません。ここで

は私のコンソールからいくつかのフィードバックです:

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と会話できますか?

+0

にこれを追加しますか? – miknik

答えて

2

あなたはあなたのphp-fpm設定で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 
+0

うわー、それを修正しました、私は彼らが同じだと思ったので、私は127.0.0.1対0.0.0.0でいくつかの宿題をする必要があります。お返事ありがとう@nuster –

+1

@ josef.van.niekerk '0.0.0.0'はどこからでも接続をlistenすることを意味し、' 127.0.0.1'はループバック(同じマシン)からの接続を待ちます。 – Xymanek

+0

おかげで、日! –

関連する問題