Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

php-fpm Connection reset by peer

Tags:

php

docker

fpm

I'm trying to get php-fpm set up on a Docker image.

Here's the service in my 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 image uses this command:

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

Here's my 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

I set listen.allowed_clients = 127.0.0.1 because otherwise I got connection refused messages; eventually I'll need php-fpm to accept connections from any IP, because I don't know what IP my Nginx image will have, and it doesn't matter since my php-fpm image won't be publicly connected to the internet.

I ran docker exec to login to the running image and ran wget to test out the server:

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

The console shows no output other than:

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
like image 899
Seán Hayes Avatar asked Apr 12 '26 19:04

Seán Hayes


1 Answers

The problem is that php-fpm doesn't use the http protocol, it uses fastcgi. The only way to connect with it was by setting up Nginx to use fastcgi.

like image 135
Seán Hayes Avatar answered Apr 15 '26 10:04

Seán Hayes