Ошибка error connect to php5-fpm.sock failed (13: Permission denied)
- Recluse
- 09.05.2016
- 7 536
- 1
- 21.06.2022
- 6
- 4
- 2
Не смотря на то, что "связка" nginx + PHP уже перестала быть какой-то диковинкой, во многих дистрибьютивах взаимодействие данных программ не налажено должным образом. Ниже - пример типичной ошибки после установки nginx и php-fpm.
Описание ошибки
Если при попытке зайти на вебсервер под управлением nginx браузер выдает код ошибки 502 (Bad gateway), а в логах пишется примерно следующее:
connect() to unix:/var/run/php5-fpm.sock failed (13: Permission denied) while connecting to upstream
то скорее всего проблема кроется в файле настроек PHP.
Исправление ошибки
Для исправления ошибки нужно открыть /etc/php5/fpm/pool.d/www.conf, и в нем найти следующие строчки:
;listen.owner = www-data
;listen.group = www-data
;listen.mode = 0660
и убрать комментарии в виде точки с запятой (если они конечно же там есть). В итоге все должно выглядеть так:
listen.owner = www-data
listen.group = www-data
listen.mode = 0660
Сохраняем файл конфига, и все что теперь осталось нужно, это перезапустить службу php-fpm (ниже приведены различные примеры для различных версий)
Для PHP5:
/etc/init.d/php5-fpm restart
systemctl restart php5-fpm
Для PHP7:
systemctl restart php7.0-fpm
Если же проблема не решилась, то следует проверить под каким пользователем работает веб-сервер nginx. Для этого стоит открыть его конфиг, который расположен по адресу /etc/nginx/nginx.conf. Ищем параметр user, он может выглядеть примерно вот так:
user nginx;
Исходя из этого, можно понять, что веб-сервер работает под пользователем nginx, а php5-fpm - под пользователем www-data. Решением такой проблемы может выступить смена пользователя, под которым работает nginx. Для этого, меняем в конфиге /etc/php5/fpm/pool.d/www.conf www-data на nginx, и перезагружаем php5-fpm.
/etc/init.d/php5-fpm restart
Добавить комментарий