Ubuntu备份PHP配置的完整步骤
PHP的主配置文件php.ini是备份的核心,其位置因PHP运行模式(命令行、Apache、PHP-FPM)而异。
php --ini命令,输出中的Loaded Configuration File字段即为php.ini的路径(例如/etc/php/8.1/cli/php.ini)。cp命令复制文件到安全目录(如/home/username/backup),并添加.bak后缀标识备份文件。例如:sudo cp /etc/php/8.1/cli/php.ini /home/username/backup/php.ini.bak
PHP扩展模块的配置文件位于mods-available目录(存放可用扩展),并通过符号链接链接到conf.d目录(启用扩展)。
mods-available目录到备份路径,保留所有扩展的配置信息:sudo cp -r /etc/php/8.1/mods-available /home/username/backup/mods-available.bak
conf.d目录(例如/etc/php/8.1/cli/conf.d或/etc/php/8.1/fpm/conf.d)。若通过PHP-FPM运行PHP(常见于Nginx或Apache反向隧道场景),需备份其配置文件。
/etc/php/{版本号}/fpm/目录(例如/etc/php/8.1/fpm/php-fpm.conf、/etc/php/8.1/fpm/pool.d/www.conf)。tar命令将整个fpm目录打包为压缩文件,便于存储和传输:sudo tar -czvf /home/username/backup/php-fpm-backup-$(date +%Y%m%d).tar.gz /etc/php/8.1/fpm/
若PHP与Apache或Nginx集成,需备份Web服务器中与PHP相关的配置,避免恢复时遗漏。
mods-available/php*.conf(PHP模块配置)及虚拟主机中的PHP相关指令(例如/etc/apache2/sites-available/000-default.conf)。fastcgi_pass指令所在的server块(通常位于/etc/nginx/sites-available/default),确保PHP脚本能正确转发至PHP-FPM。通过cron作业实现定期自动备份,减少手动操作风险。
backup_php.sh文件,写入以下内容(替换版本号和备份路径):#!/bin/bash
# 备份PHP核心配置
sudo cp /etc/php/8.1/cli/php.ini /home/username/backup/php_cli.ini.bak
sudo cp /etc/php/8.1/fpm/php.ini /home/username/backup/php_fpm.ini.bak
# 备份PHP-FPM配置
sudo tar -czvf /home/username/backup/php-fpm-$(date +%Y%m%d).tar.gz /etc/php/8.1/fpm/
echo "PHP配置备份完成于 $(date)"
chmod +x /path/to/backup_php.sh使脚本可执行。crontab -e),添加以下行以每天凌晨2点执行备份:0 2 * * * /path/to/backup_php.sh