Fix para o erro "date.timezone is not set" no PHP

Visualizando 1 post (de 1 do total)
  • Autor
    Posts
  • #12912
    Luis FatorBinario
    Luis FatorBinario
    Administrador

    Quando criamos um site seja ele WordPress, Magento ou em script PHP e fazemos deploy no sistema, o arquivo de configuração principal dele é o php.ini como todos sabemos. Aqui no Fator Binário os artigos são publicados com base em NginX e ISPConfig, e de um modo geral este arquivo reside em /etc/php5/fpm/php.ini.

    Seguindo os vários tutoriais, tanto aqui no site como em outros na internet, note que é comum configurarmos o parâmetro date.timezone dentro do php.ini para America/Sao_Paulo que é o correto na maioria dos casos.

    Porém, em raras ocasiões talvez você tenha visto uma linha de erro igual a esta abaixo nos logs de erro do site:

    [FATAL] Configuration variable date.timezone is not set, guessed timezone America/Sao_Paulo. Please set date.timezone=”America/Sao_Paulo” in php.ini!

    Mas como eu disse acima o parâmetro está configurado corretamente no php.ini.

    O erro acontece porque em determinadas configurações e/ou condições daquele script ele está sendo executado em modo de linha de comando, por exemplo, dentro do seu site há uma trigger que dispara um evento agendado. E isso também pode ocorrer quando você adiciona uma tarefa agendada (CRON) pelo ISPConfig ou em outro painel que irá disparar o script PHP.

    Quando o PHP é usado desta maneira ele utiliza outra configuração, a de linha de comando (CLI).

    Para solucionar edite o arquivo /etc/php5/cli/php.ini (note o diretório “cli”), e dentro dele localize o parâmetro date.timezone. Altere-o para o mesmo timezone do php.ini principal e em seguida reinicie o PHP.

    Após isso execute novamente o seu script e note que não dará mais erro.

Visualizando 1 post (de 1 do total)

Você deve fazer login para responder a este tópico.