在 Ubuntu 上备份 PHP 日志,通常取决于你使用的 PHP 运行方式(PHP-FPM / Apache mod_php / CLI) 以及 日志位置。下面按常见情况说明。
日志一般在:
/var/log/php*/fpm.log
/var/log/php*/php-fpm.log
例如:
/var/log/php8.1-fpm.log
PHP 错误通常写入 Apache 错误日志:
/var/log/apache2/error.log
查看 php.ini:
php --ini
常见位置:
/var/log/php_errors.log
/etc/php/*/fpm/php.ini
查找配置:
grep error_log /etc/php/*/*/php.ini
sudo cp /var/log/php8.1-fpm.log /backup/php8.1-fpm-$(date +%F).log
sudo cp /var/log/apache2/error.log /backup/apache-error-$(date +%F).log
sudo tar czf /backup/php-logs-$(date +%F).tar.gz /var/log/php* /var/log/apache2
sudo nano /usr/local/bin/backup_php_logs.sh
内容示例:
#!/bin/bash
DATE=$(date +%F)
mkdir -p /backup
tar czf /backup/php-logs-$DATE.tar.gz /var/log/php* /var/log/apache2
赋予权限:
sudo chmod +x /usr/local/bin/backup_php_logs.sh
sudo crontab -e
每日凌晨 2 点:
0 2 * * * /usr/local/bin/backup_php_logs.sh
Ubuntu 默认就有 logrotate,可让它自动轮转并保留历史日志。
查看配置:
/etc/logrotate.d/php*
/etc/logrotate.d/apache2
示例(自定义 PHP 日志):
sudo nano /etc/logrotate.d/php-custom
内容:
/var/log/php_errors.log {
daily
missingok
rotate 14
compress
delaycompress
notifempty
create 0640 www-data adm
}
测试:
sudo logrotate -d /etc/logrotate.d/php-custom
rsync -avz /backup/ user@remote:/remote/backup/
✅ 不要直接删除原日志
✅ 保留 7–30 天日志
✅ 生产环境优先用 logrotate
✅ 备份前确保日志已轮转
如果你能告诉我:
我可以给你更精确的备份方案。