Como definir o fuso horário PHP para servidor web baseado em nuvem distribuído para diferentes regiões geográficas?

1

Estou recebendo o seguinte aviso durante a execução php -i:

PHP Aviso: Desconhecido: Não é seguro confiar nas configurações de fuso horário do sistema. Tu es requeridos para usar a configuração date.timezone ou a função date_default_timezone_set (). Caso você tenha usado algum desses métodos e ainda estiver recebendo esse aviso, provavelmente você digitou incorretamente o identificador de fuso horário. Selecionamos o fuso horário "UTC" por enquanto, mas defina date.timezone para selecionar seu fuso horário. em Desconhecido na linha 0
...

Nossa VM é hospedada e distribuída para várias regiões geográficas. É semelhante ao "us-east" e "us-west" usado pela Amazon (embora não usemos a Amazon).

Como podemos definir date.timezone quando o servidor é replicado em diferentes fusos horários?

jww
fonte

Respostas:

1

Você define date.timezone na tua php.ini Arquivo.

Este comando localizará o php.ini arquivo que o PHP está usando atualmente:

php -i | grep 'Configuration File.* => '

No exemplo abaixo, meu php.ini está localizado na /opt/cpanel/ea-php56/root/etc/php.inie date.timezone está configurado para UTC:

root@node2 [~]# php -i | grep 'Configuration File.* => '
Configuration File (php.ini) Path => /opt/cpanel/ea-php56/root/etc
Loaded Configuration File => /opt/cpanel/ea-php56/root/etc/php.ini

root@node2 [~]# grep 'date\.timezone' /opt/cpanel/ea-php56/root/etc/php.ini
; http://php.net/date.timezone
date.timezone = "UTC"
Deltik
fonte
Obrigado. Nós usamos uma imagem do CentOS, e eu acredito que o arquivo de configuração é /etc/php.ini. O que configuramos quando a VM é distribuída para aumentar a disponibilidade? Se nós configuramos para America/New_York para "us-east", então será errado para "us-west" e America/Los_Angeles (e vice versa). Note que só obtemos um único espelho - parece ser uma única VM para nós.
jww
@ jww: Basta usar o fuso horário que você preferir. Eu tenho o meu definido para UTC para ser como o Stack Exchange. Se sua aplicação é sensível ao fuso horário por algum motivo, ela deve ser programada com date_default_timezone_set() definido para as suas necessidades.
Deltik
1
A melhor prática é definir sempre para o UTC. Se você precisar converter para outros fusos horários, faça isso explicitamente em cada operação. Não confie nos padrões do sistema.
Matt Johnson
Perfeito, obrigado Deltik e Matt. Se é uma prática recomendada, então parece que deve ser descomentado por padrão ....
jww