Los informes, tareas y registros de MagnusBilling dependen de una hora coherente. Configura el sistema operativo y el PHP que sirve el panel con la misma zona IANA y verifica la aplicación después del cambio.
Objetivo
Definir una única zona horaria documentada para Linux y PHP, manteniendo el panel, los registros y las tareas programadas en el mismo reloj.
Instrucciones paso a paso
1. Localiza la configuración PHP activa
La línea de comandos y Apache o PHP-FPM pueden cargar archivos php.ini distintos. Comienza con la ruta de CLI y confirma la ruta del SAPI web de tu instalación.
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. Elige una zona IANA válida
Utiliza timedatectl para buscar en la base instalada. El ejemplo usa America/Argentina/Cordoba; sustitúyelo por la ubicación necesaria.
timedatectl list-timezones | less
timezone='America/Argentina/Cordoba'
timedatectl status 3. Actualiza date.timezone en php.ini
Haz una copia del archivo activo, sustituye una configuración comentada o activa y añade el valor si no existe.
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. Recarga el servicio web
MagnusBilling en Debian normalmente utiliza Apache. Si el entorno usa PHP-FPM, recarga el servicio exacto de esa versión.
apache2ctl configtest
systemctl reload apache2
# Example only when PHP-FPM is used
# systemctl list-units 'php*-fpm.service'
# systemctl reload php8.2-fpm 5. Actualiza la zona horaria del sistema Linux
timedatectl actualiza /etc/localtime de forma segura y registra la zona elegida.
timedatectl set-timezone "$timezone"
timedatectl status 6. Verifica PHP y el sistema operativo
Comprueba el valor de CLI, del sistema y de una página o informe de MagnusBilling. Si el panel difiere, identifica el php.ini cargado por el 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" Precauciones operativas
- Ejecuta los comandos como root o mediante sudo.
- Registra la zona anterior antes de cambiarla.
- Usa una ventana de mantenimiento porque las tareas cron y los informes pueden parecer cambiar de hora.
- No dejes una página phpinfo pública en el servidor.
- Cambiar la zona no reescribe timestamps históricos ya guardados en la base de datos.
