Назад | Перейти на главную страницу

nginx не может подключиться к сокету php-fpm

Я настраиваю систему, похожую на учебник здесь.

У меня проблемы с подключением nginx к сокету php5-fpm, но из того, что я могу сказать, права доступа к сокету верны ... вы можете мне помочь?

2011/04/14 15:31:24 [crit] 13147#0: *1 connect() to unix:/var/run/php5-fpm.socket failed (2: No such file or directory) while connecting to upstream, client: 74.129.***.***, server: app.mydomain.com, request: "GET /phpinfo.php HTTP/1.1", upstream: "fastcgi://unix:/var/run/php5-fpm.socket:", host: "app.mydomain.com"

root@app0:/# ls -l /var/run/php5-fpm.socket
srw-rw-rw- 1 www-data www-data 0 Apr 14 15:51 /var/run/php5-fpm.socket

root@app0:/# ps aux | grep fpm
root     13315  0.0  1.9 168276  4948 ?        Ss   15:51   0:00 /usr/sbin/php5-fpm --fpm-config /etc/php5/fpm/main.conf
www-data 13316  0.0  2.1 168672  5492 ?        S    15:51   0:00 /usr/sbin/php5-fpm --fpm-config /etc/php5/fpm/main.conf

root@app0:/# ps aux | grep nginx
root     13341  0.0  0.4  33200  1036 ?        Ss   15:52   0:00 nginx: master process /usr/local/nginx/sbin/nginx -c /etc/nginx/nginx.conf
www-data 13342  0.0  0.7  34008  1880 ?        S    15:52   0:00 nginx: worker process
www-data 13344  0.0  0.6  33680  1628 ?        S    15:52   0:00 nginx: worker process

У меня есть несколько настроек для предоставленных вами конфигураций, но в основном это то же самое. Хотите предложить способ устранения неполадок?

Это ошибка, которую упускают из виду многие учебники. пользователь php должен быть владельцем сокета. Итак, вы хотите убедиться, что

chown www-data:www-data /var/run/php5-fpm.socket

Я не знаю, что именно вызвало это, возможно, некоторые изменения в коде PHP, но я нашел способ исправить это:

1) Откройте конфигурацию пула как root, мой находится в: /etc/php5/fpm/pool.d/www.conf

2) Добавьте следующие строки:

  • listen.owner = www-data
  • listen.group = www-data

Вот полная документация для всех параметров конфигурации.

3) Перезапустите PHP FPM: sudo service php5-fpm restart

Он должен воссоздать файл сокета с правильным пользователем и группой:

ls -lah / var / run / | grep php: -rw-r--r-- 1 root root 4 Jun 24 18:19 php5-fpm.pid srw-rw---- 1 www-data www-data 0 Jun 24 18:19 php5-fpm.sock

Надеюсь, это поможет! Ура!

У меня была похожая проблема. На моем ноутбуке для разработчиков (MacOS) я хочу запускать все в своей учетной записи, чтобы все было просто. I-узел сокета принадлежит моей учетной записи.

Мне просто нужно было закомментировать listen.owner и listen.group в www.conf.

Я начинаю все в своей учетной записи с "brew services start --all".

В www.conf «пользователь» по-прежнему установлен в «_www». Socket по-прежнему принадлежит мне. Не уверен, почему это не вызывает ошибки.