Disculpas de antemano si mi terminología no está a la par.
Así que acabo de configurar con éxito mi máquina de desarrollo de trabajo en Fedora Workstation con Nginx y múltiples versiones de PHP (usando la colección de software de Remi Collet). Tengo PHP-5.6.30 escuchando en el puerto 9056 y PHP-7.0.19 escuchando en el puerto 9070. Esto funciona perfectamente.
Esta mañana decidí intentar ejecutar ambas instancias PHP usando FPM Sockets, que inicialmente funcionó hasta que reinicié el servicio PHP-FPM (esto resultó en un502 Puerta de enlace no válidaen el navegador y(13) Permiso denegadoerror en nginx error.log).
Entonces, usando PHP5.6 como ejemplo... cuando inicié por primera vez el php56-php-fpm
servicio que generaba /opt/remi/php56/root/var/run/php-fpm/www.sock
, cambié el www.sock
usuario y el grupo del archivo generado a nginx:nginx
. Después de reiniciar, php56-php-fpm
supe que www.sock
se estaba restableciendo root:root
. Ahora bien, no reiniciaré FPM constantemente, pero ¿debe haber una manera de establecer algunos valores predeterminados en el .sock
archivo? Mis archivos de configuración de fpm se ven así:
- /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
Me doy cuenta de que parece complicado empezar a trabajar correctamente, teniendo en cuenta que solo estoy haciendo esto para el desarrollo local.yque todo esto funcionó correctamente usando los puertos 9056 y 9070. Pero he leído que hay algunos beneficios de velocidad al usar sockets versus TCP, y vale la pena hacer el esfuerzo por cualquier cosa que acelere mi entorno de desarrollo local.
Entonces mis preguntas:
- ¿Qué es incorrecto en mi configuración que hace que se restablezca www.sock
root:root
después de reiniciar el servicio FPM respectivo? - ¿Realmente vale la pena alejarse de los puertos en favor de los enchufes?
- [ligeramente fuera de tema]: al utilizar la colección de software de Remi Collet, veo que los 2 paquetes PHP se instalan en diferentes ubicaciones:
/opt/remi/php56
y/etc/opt/remi/php70
... para mantener la coherencia, ¿debería considerar mover cualquiera de estos a una ubicación más común?
Gracias
Respuesta1
Algunas cosas para comprobar...
1) De forma predeterminada, en CentOS, PHP no incluye los archivos de configuración en el php-fpm.d
directorio, asegúrese de tenerlos include=/opt/remi/php56/root/etc/php-fpm.d/*.conf
en el php-fpm.conf
archivo.
2) Debe asegurarse de configurar la propiedad del socket en la configuración del grupo php-fpm, por ejemplo:
[www]
listen = /opt/remi/php56/root/var/run/php-fpm/$pool.sock
listen.owner = someuser
listen.group = somegroup
listen.mode = 0600
Respuesta2
En mi propio caso en remi php80-php-fpm
, tuve que cambiar listen.acl_users
la variable ../php-fpm.d/www.conf
al usuario de mi servidor web. Por ejemplo:
;comment: replace mywebserveruser with your own user
listen.acl_users = mywebserveruser