あなたが手助けできることを願っています。私はhttpd24ためにSCL、1とCentOSに6に基づいて別々の容器を構築するドッキングウィンドウ-COMPOSEファイル(下記参照)を、書いたDocker for Windowsを使用して別のコンテナでphp-fpmと通信できないのはなぜですか?
のWindows 10上でWindows用の最新の安定ドッカーを実行している
-httpd(Apache)、1つはrh-php56-php-fpm(PHP-FPM)です。 OKステータスを報告するサービスがあれば、コンテナは正常に起動します。コンテナから別のコンテナにpingを実行すると、問題は解決します。私がindex.htmlページにアクセスした場合、Apacheは満足しています。
Apacheは現在proxy:fcgi:phpfpm:9000を使用するように設定されていますが、PHPファイルを読み込もうとすると、Apacheは503エラーを返します。私は、proxy:fcgi:127.0.0.1:9000 - 0.0.0.0:9000 - 172.20.0.3:9000(これはdockerのphpfpm ip)のようないくつかの異なる接続オプションを試しましたが、Apacheはちょうどログに記録しています:
[proxy:error] [pid 60:tid ...] (...)Connection refused: AH00957: FCGI: attempt to connect to 172.20.0.3:9000 (*) failed
[proxy_fcgi:error] [pid 60:tid ...] [client 172.20.0.1:44546] AH01079: failed to make connection to backend: ...
私もproxypassmatchで試してみましたが、それでも喜んではいません。
<IfModule proxy_module>
ProxyPassMatch ^/(.*\.php(/.*)?)$ fcgi://php:9000/var/www/html/$1
</IfModule>
mod_proxy、mod_proxy_http、mod_proxy_fcgiがApacheによってロードされています。
PHP-FPMも明らかに設定されています。私は一般的に、これは単にポート9000をリッスンするように設定しなければならなかっただけでなく、私が追加したdevelopment.php.dockerfileでビルド中に::: 9000
を試してみました:
EXPOSE 9000
と、などphpfpmにリンクされているので、phpfpmにアクセスできるはずです:9000
誰も私がなぜこのisn ' t働く?それは私をひねり返します。とても感謝しています。
ドッカー-COMPOSE:
version: '2'
services:
httpd:
build:
context: .
dockerfile: ./docker/development.httpd.Dockerfile
environment:
- APACHE_RUN_USER=apache
- APACHE_RUN_GROUP=apache
- APACHE_LOG_DIR=/var/log/httpd24
- APACHE_RUN_DIR=/opt/rh/httpd24/root/var/run/httpd
- APACHE_LOCK_DIR=/opt/rh/httpd24/root/var/lock
- [email protected]
- APACHE_SERVERNAME=foo.bar
- APACHE_SERVERALIAS="foo.foo.bar www.foo.bar"
- APACHE_DOCUMENTROOT=/var/www/html
volumes:
- ./data/www/html:/var/www/html
ports:
- "10180:80"
tty: true
networks:
- front-tier
phpfpm:
build:
context: .
dockerfile: docker/development.php.Dockerfile
environment:
- PHPFPM_RUN_USER=apache
- PHPFPM_RUN_GROUP=apache
- PHPFPM_LISTEN=9000
- PHPFPM_PM=dynamic
- PHPFPM_PM_MAX_CHILDREN=50
- PHPFPM_PM_START_SERVERS=5
- PHPFPM_PM_MIN_SPARE_SERVERS=5
- PHPFPM_PM_MAX_SPARE_SERVERS=35
- PHPFPM_LOG_DIR=/var/log/rh-php56-php-fpm
volumes:
- ./data/www/html:/var/www/html
tty: true
networks:
- front-tier
- back-tier
mysql:
build:
context: .
dockerfile: docker/development.mysql.Dockerfile
volumes:
- ./data/db:/usr/tmp/db/
- mysql:/var/lib/mysql
expose:
- 3306
ports:
- "10133:3306"
tty: true
networks:
- back-tier
volumes:
mysql:
networks:
front-tier:
driver: bridge
back-tier:
driver: bridge
www.conf
[...]
user = apache
group = apache
listen = 9000
listen.allowed_clients = httpd
[...]
00 custom.conf
[...]
<VirtualHost *:80>
[...]
<Directory "/var/www/html">
Options -Indexes +FollowSymlinks +MultiViews
AllowOverride All
Require all granted
</Directory>
<FilesMatch \.php$>
SetHandler "proxy:fcgi://php:9000"
</FilesMatch>
[...]
</VirtualHost>
UPDATE 問題はPHP-FPM構成ファイルで発生していました。私はそれを認識しませんでしたが、SCLのrh-php56-php-fpmはconfファイルの2つのディレクトリを作成していました。私は/opt/rh/rh-php56/register.content/etc/opt/rh/rh-php56/php-fpm.d/www.confを変更していましたが、サービスは/ etc/opt/rh/rh-php56を使っていました/php-fpm.d/www.conf
私は質問で完全なファイルパスを明確にすべきでした!
また、壊れたパイプAH01074 Apacheエラーを引き起こしていたので、listen.allowed_clients = httpd
も削除しました。コンテナIPを使用しても問題ありませんでしたが、私はそのルートを控えていません。いずれにしても重要ではない。
彼らは、それはあなたのネットワークの設定である必要がありますすることができます。 – Devon
ありがとう@Devon私は彼らができるはずだと思った。私はそれを解決するときに私は更新されます。乾杯 – iomdesign