-->

Horário do PHP diferente do Servidor?

O horário de verão acabou no último domingo 15/02/2009, fato que eu comemorei antecipadamente em plena sexta-feira 13. Porém, como alegria de pobre dura pouco, verifiquei que com os servidores tudo ok, o horário foi corrigido ‘automágicamente’, mas… (sempre tem que ter um ‘mas’) o php não colaborou comigo e mantinha o horário de verão. Precisei então atualizar o “Olson Timezone Database Version“.

Se eu fizesse um date no terminal eu recebia:

# date
Ter Fev 17 10:15:35 BRT 2009

mas se fizesse um: # php -r “print date(‘d/m/Y H:i:s e T’);”, tinha como resposta:

17/02/2009 11:15:36 America/Sao_Paulo BRT

Vi em muitos tutoriais a simples sujestão de usar um:

pecl install timezonedb

Mas esta sugestão acima simplesmente não funcionou comigo, só consegui solucionar o problema da seguinte forma:

  1. Entrei no diretório opt (é nele que sempre costumo deixar minhas instalações) e fiz os seguintes comandos:

    pecl bundle timezonedb
    cd timezonedb
    phpize
    ./configure
    make
    make test
    make install

  2. Lembrando que todos os comandos acima foram executados como root

  3. Editei o arquivo /usr/local/lib/php.ini, comentando a linha abaixo (sempre prefiro comentar do que excluir, caso algo dê errado é só descomentar):

    ;extension_dir = “/usr/local/lib/php/extensions/no-debug-non-zts-20020429″

  4. note que no exemplo em que passei acima a linha já está comentada com um “;” (ponto e vírgula)

  5. E acrescentei logo abaixo mais duas linhas:

    extension_dir = “/usr/local/lib/php/extensions/no-debug-non-zts-20060613″
    extension=timezonedb.so

  6. Com isso, salvei o arquivo e reiniciei o apache, ao comparar novamente as datas com os comandos que citei logo no começo do post, elas estavam ok.

Não sei se mais alguém passou pelo mesmo problema, mas fica aí a dica. Obviamente eu pesquisei em um monte de lugar para conseguir encontrar a solução, mas as fontes que mais me ajudaram foram estas duas:
Atualização do horário de verão no PHP e
PECL timezonedb fun

9 Comentários para “Horário do PHP diferente do Servidor?”

  1. Alessandro disse:

    Cara. vou postar os erros que deu.. estou com o mesmo problema. .

    Primeiro comando já deu erro
    servidor:/opt# pecl install timezonedb
    /tmp/glibctestf82Iaz:1:22: error: features.h: Arquivo ou diretório não encontrado
    downloading timezonedb-2009.1.tgz …
    Starting to download timezonedb-2009.1.tgz (190,978 bytes)
    …..done: 190,978 bytes
    5 source files, building
    running: phpize
    sh: phpize: command not found
    ERROR: `phpize’ failed
    servidor:/opt#

  2. Alessandro disse:

    Arrumando o erro acima

    Instalei o php5-dev
    apt-get install php5-dev

  3. Alessandro disse:

    O resto dos comandos não fucionou

  4. Alessandro disse:

    Opa.. vamos lá.. tudo funcionou, eu não vi as instruções direito.

    Agora sim.

    ;extension_dir = “/usr/local/lib/php/extensions/no-debug-non-zts-20060613″ Esta linha eu deixei comentada mesmo. Porque deu erro no mysql

    Só coloquei esta linha

    extension=timezonedb.so

    FUNCIOUNOU TUDO 100%

  5. Alessandro disse:

    Mais um comentário.

    Fiz em 2 servidores meus e funcionou 100%
    Meu sistema: Debian Etcht 4.0

  6. Alessandro disse:

    Ok. . e já estou postando este em vários lugares que estão com problemas também.

    Abrços.

  7. [...] F² – Além de um simples F1 :: Horário do PHP diferente do Servidor? [...]

  8. [...] Para os Linux Sysadmins, leiam também o post: “Horário do PHP diferente do Servidor?“ Related Posts:Squid – Instalação e ConfiguraçãoDecisões de 2009!Faça um teste com [...]

  9. [...] de acertar a hora entre o PHP e o servidor, me encontrei na seguinte situação: O aplicativo PHP Album lhe dá duas opções de upload de [...]

  10. Felix disse:

    Oi Alessandro.

    Desculpe estar respondendo os comentários somente agora, mas é que ontem o blog passou por alguns problemas (juntamente com todo o DreamHost) e hoje está bem apurado aqui na empresa. Só tive tempo de dar uma atenção agora na hora do almoço.

    Fico contente de ter ajudado a corrigir o problema que você assim como eu teve também. Eu demorei algum tempo para conseguir solucionar, por isso sempre que consigo algo eu coloco aqui no blog, assim tenho um ‘bloco de notas’ disponível e auxilio também outras pessoas.

    Obrigado pela visita, e pelos comentários dando um feedback. Precisando de algo, é só entrar em contato.

    []
    Felix

  11. César Eduardo disse:

    Felix, boa tarde estou com um problema inverso ao seu e achei q poderia me ajudar :
    Com a entrada do horario e verão estamos com a seguinte situação :
    Banco Oracle ok
    Servidor Linux ok
    com relação as datas e horarios
    porém ao mandar o sistema gravar a hora de chegada no sistema, utilizando a instrução CURRENT_DATE do oracle ele está considerando uma hora a mais, tipo são 10:00:00 e ao gravar no banco o campo hora de chegada grava : 11:00:00, vc sabe como resolver isso, é o php ?
    Já estou ficando louco. Grato

  12. Felix disse:

    Olá César.

    Ainda não tive a oportunidade de trabalhar com Oracle, então não posso dar nenhuma certeza, mas você tentou seguir o procedimento que eu descrevi aqui neste artigo? teve alguma mensagem de erro? Infelizmente não posso ajudar muito assim só na base do palpite.

Leave a Reply

Canonical URL by SEO No Duplicate WordPress Plugin