php-fpm由同级重置连接

我试图让PHP-FPM设置在一个Docker镜像上。

以下是我的docker-compose.yml中的服务:

wordpress-service: build: context: . dockerfile: Dockerfile-wordpress image: riffsy-web-wordpress:latest restart: always links: - wordpress-mysql depends_on: - wordpress-mysql expose: - "8000" environment: - DB_NAME=wordpress - DB_USER=wordpress - DB_PASSWORD=password123 - DB_HOST=wordpress-mysql - DB_PORT=3306 ports: - "8000:8000" 

Docker镜像使用这个命令:

 CMD php-fpm7.0 --fpm-config /etc/php-fpm.conf 

这是我的php-fpm conf:

 [global] error_log = /dev/stderr log_level = debug daemonize = no [www] listen = 8000 listen.allowed_clients = 127.0.0.1 user = www-data group = www-data pm = dynamic pm.max_children = 6 pm.start_servers = 2 pm.min_spare_servers = 1 pm.max_spare_servers = 4 pm.max_requests = 500 request_terminate_timeout = 120s catch_workers_output = yes 

我设置listen.allowed_clients = 127.0.0.1 ,否则我有连接被拒绝的消息; 最终我需要php-fpm来接受来自任何IP的连接,因为我不知道我的Nginx映像将会有什么IP,并且这并不重要,因为我的php-fpm映像不会公开连接到Internet 。

我运行docker execlogin到正在运行的映像并运行wget来testing服务器:

 root@428d78fd58df:/srv# wget 127.0.0.1:8000 --2016-09-12 07:55:13-- http://127.0.0.1:8000/ Connecting to 127.0.0.1:8000... connected. HTTP request sent, awaiting response... Read error (Connection reset by peer) in headers. Retrying. --2016-09-12 07:55:14-- (try: 2) http://127.0.0.1:8000/ Connecting to 127.0.0.1:8000... connected. HTTP request sent, awaiting response... Read error (Connection reset by peer) in headers. Retrying. --2016-09-12 07:55:16-- (try: 3) http://127.0.0.1:8000/ Connecting to 127.0.0.1:8000... connected. HTTP request sent, awaiting response... Read error (Connection reset by peer) in headers. Retrying. ^C 

控制台显示除以下之外没有输出:

 wordpress-service_1 | [12-Sep-2016 08:01:09.757039] DEBUG: pid 5, fpm_pctl_perform_idle_server_maintenance(), line 379: [pool www] currently 0 active children, 2 spare children, 2 running children. Spawning rate 1 

问题是php-fpm不使用http协议,它使用fastcgi。 连接它的唯一方法是设置Nginx使用fastcgi。