Como definir date.timezone e qual é o local correto para fazer isso

2

(Estou tentando implantar um projeto PHP de código aberto para o nginx. O projeto em si não importa.)

Eu preciso definir date.timezone para o fuso horário local porque o projeto usa uma configuração global.

Encontrei uma linha no meu arquivo php.ini (em /etc/php/7.0/fpm/php.ini para debian), mas como não queria alterar a configuração global, criei um novo arquivo ini no fpm / conf.d / diretório com a linha:

date.timezone = ('Europe/Berlin') 

Este é um dos fusos horários aceitos como documentado aqui No entanto, quando eu olho para o meu php info, o fuso horário reflete em "Valor Local", bem como "Valor Mestre".

Posso ter isso para que apenas este projeto php tenha o fuso horário definido enquanto o global permanece no padrão UTC?

    
por Nosh 10.09.2018 / 14:40

2 respostas

3

O fpm/conf.d/ é varrido para arquivos .ini adicionais, facilitando a separação da configuração, por exemplo, por módulo. Eles são verificados para cada pool do FPM, ou seja, é uma configuração global como o php.ini .

Você pode substituir as configurações individuais de um único pool no seu fpm/pool.d/poolname.conf :

php_admin_value[date.timezone] = Europe/Berlin

Em breve nos pools PHP FPM que permitem usar configurações, recursos & usuário (permissões):

  1. O pool padrão é configurado em fpm/pool.d/www.conf para escutar um soquete UNIX:

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

    Observe também que ele é executado como o usuário www-data (ou nginx ), com todas as permissões.

  2. O bloco Nginx server{} passa o script PHP para este soquete para o conjunto do PHP FPM:

    location ~ \.php$ {
        fastcgi_pass unix:/run/php/php7.2-fpm.sock;
        # another fastcgi options
    }
    
  3. Você pode executar o PHP de seu projeto individual como um usuário separado mautic criando um pool adicional do FPM, por exemplo, fpm/pool.d/mautic.conf para o seu projeto 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
    

    E, naturalmente, use este novo /run/php/mautic.sock na configuração relevante do Nginx.

A documentação oficial começa de onde você já deve saber a ideia básica, tornando é um pouco difícil para iniciantes. Felizmente existem tutoriais , ou você pode até divirta-se assistindo a um vídeo .

    
por 10.09.2018 / 15:27
0

Honestamente, eu sou preguiçoso e simplesmente configuro em /etc/php.ini. Isso abrange todos os aplicativos php no servidor e, na maioria dos casos, todos os aplicativos no servidor estarão no mesmo TZ.

Basta abrir o arquivo /etc/php.ini e encontrar a linha com date.timezone e usar o fuso horário necessário. Para obter uma lista de possíveis fusos horários, consulte o documento oficial PHP .

    
por 10.09.2018 / 17:56