MagnusBilling
Operations

Como configurar o fuso horário do PHP e do sistema no MagnusBilling

Sincronize o fuso horário do Debian e do PHP usado pelo MagnusBilling e verifique os dois com segurança.

ENPTES

Relatórios, agendamentos e logs do MagnusBilling dependem de um horário consistente. Configure o sistema operacional e o PHP que atende o painel com o mesmo fuso IANA e verifique a aplicação depois da mudança.

Objetivo

Definir um único fuso documentado para Linux e PHP, mantendo painel, logs e tarefas agendadas no mesmo relógio.

Instruções passo a passo

1. Localize a configuração PHP ativa

A linha de comando e o Apache ou PHP-FPM podem carregar arquivos php.ini diferentes. Comece pelo caminho da CLI e confirme o caminho do SAPI web da instalação.

PHP_INI=$(php --ini | sed -n 's|Loaded Configuration File: ||p')
printf 'CLI php.ini: %s\n' "$PHP_INI"
php --ini
grep -n 'date.timezone' "$PHP_INI" || true

2. Escolha um fuso IANA válido

Use timedatectl para pesquisar a base instalada. O exemplo usa America/Argentina/Cordoba; substitua pela localidade necessária.

timedatectl list-timezones | less
timezone='America/Argentina/Cordoba'
timedatectl status

3. Atualize date.timezone no php.ini

Faça backup do arquivo ativo, substitua uma configuração comentada ou ativa e acrescente o valor caso ele não exista.

cp -a "$PHP_INI" "$PHP_INI.before-timezone"

if grep -Eq '^[;[:space:]]*date.timezone[[:space:]]*=' "$PHP_INI"; then
  sed -i -E "s|^[;[:space:]]*date.timezone[[:space:]]*=.*|date.timezone = ${timezone}|" "$PHP_INI"
else
  printf '\ndate.timezone = %s\n' "$timezone" >> "$PHP_INI"
fi

4. Recarregue o serviço web

O MagnusBilling no Debian normalmente usa Apache. Se o ambiente usa PHP-FPM, recarregue o serviço exato dessa versão.

apache2ctl configtest
systemctl reload apache2

# Example only when PHP-FPM is used
# systemctl list-units 'php*-fpm.service'
# systemctl reload php8.2-fpm

5. Atualize o fuso do sistema Linux

timedatectl atualiza /etc/localtime com segurança e registra a zona escolhida.

timedatectl set-timezone "$timezone"
timedatectl status

6. Verifique PHP e sistema operacional

Confira o valor da CLI, do sistema e de uma página ou relatório do MagnusBilling. Se o painel divergir, identifique o php.ini carregado pelo SAPI web.

php -r 'echo date_default_timezone_get(), PHP_EOL; echo date(DATE_ATOM), PHP_EOL;'
date --iso-8601=seconds
grep -n 'date.timezone' "$PHP_INI"

Cuidados operacionais

  • Execute os comandos como root ou via sudo.
  • Registre o fuso anterior antes de alterá-lo.
  • Use uma janela de manutenção, pois tarefas cron e relatórios podem parecer mudar de horário.
  • Não deixe uma página phpinfo pública no servidor.
  • Alterar o fuso não reescreve timestamps históricos já salvos no banco.

Artigo original

Ler o artigo original arquivado