Заранее извиняюсь, если моя терминология не соответствует действительности.
Итак, я только что успешно настроил свою рабочую машину для разработки на Fedora Workstation с Nginx и несколькими версиями PHP (используя Remi Collet's Software Collection). У меня PHP-5.6.30 слушает на порту 9056, а PHP-7.0.19 слушает на порту 9070. Все работает отлично.
Сегодня утром я решил попробовать запустить оба экземпляра PHP с использованием сокетов FPM, что поначалу работало, пока я не перезапустил службу PHP-FPM (это привело к502 Неверный шлюзв браузере и(13) В разрешении отказаноошибка в nginx error.log).
Итак, используя PHP5.6 в качестве примера... когда я впервые запустил php56-php-fpm
службу, которая сгенерировала , я изменил пользователя и группу /opt/remi/php56/root/var/run/php-fpm/www.sock
сгенерированного файла на . После перезапуска я узнал, что они сбрасываются на . Конечно, я не буду постоянно перезапускать FPM, но должен же быть способ задать какие-то значения по умолчанию для файла ?? Мои файлы конфигурации fpm выглядят так:www.sock
nginx:nginx
php56-php-fpm
www.sock
root:root
.sock
- /opt/remi/php56/root/etc/php-fpm.d/www.conf:https://pastebin.com/EasyHyEs
- /etc/opt/remi/php70/php-fpm.d/www.conf:https://pastebin.com/dhT8AEJK
- /etc/nginx/nginx.conf:https://pastebin.com/tMuAFnGM
- /etc/nginx/conf.d/default.conf:https://pastebin.com/UjkrcaYw
Я понимаю, что это звучит как мучение, чтобы заставить это работать правильно, учитывая, что я делаю это только для местного развития,ичто у меня все это работало правильно с использованием портов 9056 и 9070. Но я читал, что есть некоторые преимущества в скорости при использовании сокетов по сравнению с TCP, и все, что может ускорить мою локальную среду разработки, стоит того, чтобы приложить усилия.
Итак, мои вопросы:
- Что в моей конфигурации неверно и что приводит к сбросу www.sock
root:root
после перезапуска соответствующей службы FPM? - Действительно ли стоит отказываться от портов в пользу розеток?
- [немного не по теме]: используя коллекцию программного обеспечения Реми Колле, я вижу, что 2 пакета PHP устанавливаются в разные места:
/opt/remi/php56
и/etc/opt/remi/php70
... в целях согласованности, следует ли мне рассмотреть возможность перемещения одного из них в более общее место?
Спасибо
решение1
Несколько вещей, которые следует проверить...
1) По умолчанию в CentOS PHP не включает файлы конфигурации в php-fpm.d
каталог, убедитесь, что они у вас есть include=/opt/remi/php56/root/etc/php-fpm.d/*.conf
в php-fpm.conf
файле.
2) Вам необходимо убедиться, что вы установили владельца сокета в конфигурации пула php-fpm, например:
[www]
listen = /opt/remi/php56/root/var/run/php-fpm/$pool.sock
listen.owner = someuser
listen.group = somegroup
listen.mode = 0600
решение2
В моем случае на remi's php80-php-fpm
мне пришлось изменить listen.acl_users
переменную ../php-fpm.d/www.conf
на пользователя моего веб-сервера. Например:
;comment: replace mywebserveruser with your own user
listen.acl_users = mywebserveruser