Cómo configurar date.timezone y cuál es el lugar correcto para hacerlo

Cómo configurar date.timezone y cuál es el lugar correcto para hacerlo

(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 .iniarchivos 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:

  1. El grupo predeterminado está configurado fpm/pool.d/www.confpara escuchar un socket UNIX:

    listen = /run/php/php7.2-fpm.sock
    

    Observe también que se ejecuta como el usuario www-data(o nginx), teniendo todos sus permisos.

  2. 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
    }
    
  3. Puede ejecutar PHP de su proyecto único como un usuario separado mauticcreando un grupo FPM adicional, por ejemplo, fpm/pool.d/mautic.confpara 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.socken 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.phparchivo puedes especificar la zona horaria solo de ese proyecto.

información relacionada