温馨提示×

centos php配置备份方法

小樊
42
2025-12-29 04:08:23
栏目: 编程语言

CentOS PHP配置备份方法

一 快速定位配置文件

  • 使用命令查看实际加载的配置路径:php --ini,关注输出中的 Loaded Configuration FileConfiguration File (php.ini) Path
  • 常见位置包括:/etc/php.ini/etc/php.d/(扩展与附加配置)。
  • 若使用多版本或 SCL、Remi 仓库,可能位于版本化目录,例如:/opt/remi/php81/root/etc/php.ini/opt/remi/php81/root/etc/php-fpm.d/;也可通过 php -i | grep “Loaded Configuration File” 精确定位。

二 手动备份步骤

  • 备份主配置:
    • 示例:sudo cp /etc/php.ini /etc/php.ini.bak-$(date +%F-%H%M%S)
  • 备份扩展配置目录:
    • 示例:sudo cp -r /etc/php.d /etc/php.d.bak-$(date +%F-%H%M%S)
  • 如使用 PHP-FPM,一并备份进程池与全局配置:
    • 示例:sudo cp /etc/php-fpm.conf /etc/php-fpm.conf.bak-$(date +%F-%H%M%S)
    • 示例:sudo cp -r /etc/php-fpm.d /etc/php-fpm.d.bak-$(date +%F-%H%M%S)
  • 打包归档便于传输与留存:
    • 示例:sudo tar -czvf php_conf_$(date +%F-%H%M%S).tar.gz /etc/php.ini /etc/php.d /etc/php-fpm* 2>/dev/null**
  • 将归档移至安全位置(如独立磁盘、备份服务器或对象存储挂载点)。

三 自动化备份脚本

  • 示例脚本(可放入 /usr/local/bin/backup_php_conf.sh):
#!/usr/bin/env bash
set -Eeuo pipefail

# 配置
BACKUP_DIR="/opt/backups/php-conf"
DATE=$(date +"%Y%m%d-%H%M%S")
HOST=$(hostname -s)
OUT="$BACKUP_DIR/php-conf-${HOST}-${DATE}.tar.gz"

# 要备份的路径(可按实际环境增删)
INI_PATHS=(/etc/php.ini /etc/php.d /etc/php-fpm.conf /etc/php-fpm.d)

# 创建备份目录
mkdir -p "$BACKUP_DIR"

# 生成文件清单(忽略不存在的路径)
INCLUDE_ARGS=()
for p in "${INI_PATHS[@]}"; do
  if [[ -e "$p" ]]; then
    INCLUDE_ARGS+=( "$p" )
  fi
done

# 打包
tar -czf "$OUT" "${INCLUDE_ARGS[@]}" 2>/dev/null

# 保留最近 N 天(示例:7 天)
RETENTION_DAYS=7
find "$BACKUP_DIR" -name "php-conf-*.tar.gz" -mtime +$RETENTION_DAYS -delete

echo "Saved: $OUT"
  • 赋权并测试:
    • chmod +x /usr/local/bin/backup_php_conf.sh
    • /usr/local/bin/backup_php_conf.sh
  • 加入定时任务(每天 02:00 执行):
    • sudo crontab -e
    • 添加:0 2 * * * /usr/local/bin/backup_php_conf.sh >> /var/log/backup_php_conf.log 2>&1

四 恢复与验证

  • 解压覆盖恢复:
    • 示例:sudo tar -xzvf php_conf_2025-08-06-1200.tar.gz -C /
  • 按原路径复制回滚(适用于 .bak 文件):
    • 示例:sudo cp /etc/php.ini.bak-2025-08-06 /etc/php.ini
    • 示例:sudo cp -r /etc/php.d.bak-2025-08-06 /etc/php.d
  • 使配置生效:
    • Apache:sudo systemctl restart httpd
    • PHP-FPM:sudo systemctl restart php-fpm
    • Nginx+PHP-FPM:先重启 php-fpm,再重启 nginx
  • 验证:
    • 查看版本与配置:php -vphp --ini
    • 创建测试页 /var/www/html/info.php,访问确认关键参数与扩展。

五 注意事项与排错

  • 多版本并存时,务必备份并恢复对应版本的目录(如 /opt/remi/php81//opt/remi/php82/),避免错配。
  • 使用打包归档时,注意排除敏感信息(如包含数据库密码的自定义包含文件),或在恢复后及时修正。
  • 若使用 SELinux,确保备份与恢复过程保留正确的安全上下文,必要时使用 restorecon 修复。
  • 建议将备份文件同步到异地或对象存储,并定期做恢复演练以验证可用性与完整性。

0