
(Estoy intentando implementar un código abiertoproyecto phpa nginx. El proyecto en sí no importa).
Necesito configurar date.timezone en mi zona horaria local porque el proyecto utiliza una configuración global.
Encontré una línea en mi archivo php.ini (en /etc/php/7.0/fpm/php.ini para Debian), pero como no quería cambiar la configuración global, creé un nuevo archivo ini en fpm/conf. directorio .d/ con la línea:
date.timezone = ('Europe/Berlin')
Esta es una de las zonas horarias admitidas comodocumentado aquí Sin embargo, cuando miro mi información de PHP, la zona horaria se refleja tanto en el "Valor local" como en el "Valor maestro".
¿Puedo hacer que solo este proyecto php tenga la zona horaria configurada mientras que la global permanezca en la UTC predeterminada?
Respuesta1
Se fpm/conf.d/
escanea en busca de .ini
archivos adicionales, lo que facilita la separación de la configuración, por ejemplo, por módulo. Estos se analizan para cada grupo de FPM, es decir, es una configuración global como php.ini
.
Puede anular la configuración individual para un solo grupo en su fpm/pool.d/poolname.conf
:
php_admin_value[date.timezone] = Europe/Berlin
En breve en grupos PHP FPMque permite usar configuraciones, recursos y usuarios (permisos) separados:
El grupo predeterminado está configurado
fpm/pool.d/www.conf
para escuchar un socket UNIX:listen = /run/php/php7.2-fpm.sock
Observe también que se ejecuta como el usuario
www-data
(onginx
), teniendo todos sus permisos.El bloque Nginx
server{}
pasa el script PHP a este socket para que el grupo PHP FPM lo maneje:location ~ \.php$ { fastcgi_pass unix:/run/php/php7.2-fpm.sock; # another fastcgi options }
Puede ejecutar PHP de su proyecto único como un usuario separado
mautic
creando un grupo FPM adicional, por ejemplo,fpm/pool.d/mautic.conf
para su proyecto Mautic:[mautic] user = mautic group = mautic listen = /run/php/mautic.sock chdir = /var/www/mautic # or /home/mautic etc. listen.owner = www-data # or nginx(?) to let Nginx use the socket listen.group = www-data php_admin_value[date.timezone] = Europe/Berlin
Y, naturalmente, utilice esta novedad
/run/php/mautic.sock
en la configuración de Nginx correspondiente.
Eldocumentación oficialcomienza desde donde ya deberías conocer la idea básica, lo que lo hace un poco difícil para los principiantes. Por suerte haytutoriales, o incluso podrías disfrutar viendo unvideo.
Respuesta2
Honestamente, soy vago y simplemente lo configuro en /etc/php.ini. Esto cubre todas las aplicaciones php en el servidor y en la mayoría de los casos todas las aplicaciones en el servidor estarán en el mismo TZ.
Simplemente abra /etc/php.ini y busque la línea con date.timezone y use la zona horaria requerida. Para obtener una lista de posibles zonas horarias, consulte el sitio web oficial.documento PHP.
Respuesta3
Nota al margen aquí
En la situación en la que estás desarrollando usando Laravel, en el config/app.php
archivo puedes especificar la zona horaria solo de ese proyecto.