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.
