A configuração do servidor que resolvi corrigir o problema possui
Fedora Core 5 com
PHP 5.1 e
Apache 2.2 instalados.
Vasculhando maiores informações, descobri que o pacote com a atualização do timezone atual pertencia ao PECL, e este pode ser instalado através do comando abaixo.
# pecl install timezonedb
Com isso, o PECL faz o download, compilação e instalação do pacote necessário, preparando a extensão para ser utilizada pelo PHP. Simples assim.
Porém ele faz a instalação da extensão em um diretório diferente da configuração que o PHP está esperando, que é:
/usr/lib/php/modules (esse diretório é a minha configuração default do PHP)
Ele coloca essa extensão em:
/usr/local/lib/php/extensions/no-debug-non-zts-20050922
O que você tem que fazer é copiar o arquivo
timezonedb.so do diretório onde o PECL instalou para o diretório que o PHP está aguardando que estejam todas suas extensões.
Feito isso, você precisa dizer ao PHP para utilizar essa extensão.
Edite o arquivo de configuração do PHP (
/etc/php.ini) e adicione a linha extension=timezonedb.so na seção Dynamic Extensions.
Vai ficar algo mais ou menos assim:
;;;;;;;;;;;;;;;;;;;;;;
; Dynamic Extensions ;
;;;;;;;;;;;;;;;;;;;;;;
;
; If you wish to have an extension loaded automatically, use the following
; syntax:
;
; extension=modulename.extension
;
; For example:
;
; extension=msql.so
;
; Note that it should be the name of the module only; no directory information
; needs to go here. Specify the location of the extension with the
; extension_dir directive above.
;;;;
; Note: packaged extension modules are now loaded via the .ini files
; found in the directory /etc/php.d; these are loaded by default.
;;;;
extension=mysql.so
extension=timezonedb.so
Com essa configuração feita no seu PHP, salve o arquivo e reinicie o Apache:
# /sbin/service httpd restart
E pronto! Seu sistema operacional e seu PHP estão trabalhando com o horário de verão corretos.