PHP配置备份核心是确保运行环境行为一致,需精准备份php.ini、conf.d目录、扩展清单及源码安装目录,并验证完整性。

PHP配置文件本身不直接存数据,但它是整个PHP运行环境的行为依据。备份还原的关键不是“恢复业务数据”,而是确保迁移、升级或故障后,PHP仍按原有方式加载扩展、处理错误、限制内存、识别时区等。必须连同配置路径、扩展启用状态和安装结构一起保存。
一、精准定位并备份核心配置文件 php.ini
php.ini 是唯一生效的主配置文件,路径因安装方式而异,不能凭经验猜测:
- 执行 php --ini 查看输出中 “Loaded Configuration File” 后的真实路径(如 /etc/php/8.2/apache2/php.ini);
- 用带时间戳的 cp 命令备份: cp /etc/php/8.2/apache2/php.ini /backup/php.ini_$(date +%Y%m%d_%H%M);
- 检查备份是否可读:ls -l /backup/php.ini_*,确认权限为 644 且大小非零。
二、同步备份扩展启用配置目录 conf.d
Debian/Ubuntu 等系统把扩展开关拆成独立 .ini 文件,放在 conf.d 目录下。只备份 php.ini 而漏掉它,会导致 opcache、gd、mysqli 等扩展实际未启用:
- 从 php --ini 输出中找到 “Scan for additional .ini files in” 对应路径(如 /etc/php/8.2/cli/conf.d/);
- 打包整个目录:tar -czf /backup/php_conf.d_$(date +%Y%m%d).tar.gz /etc/php/8.2/cli/conf.d/;
- 快速验证内容:tar -tzf /backup/php_conf.d_*.tar.gz | head -3,应看到 20-opcache.ini、30-mysqli.ini 等文件名。
三、记录当前启用的扩展清单
扩展列表是环境功能边界的快照,尤其对自编译 PHP 或含第三方扩展(如 swoole、xdebug)的场景至关重要:
立即学习“PHP免费学习笔记(深入)”;
- 导出全部模块:php -m > /backup/php_extensions_$(date +%Y%m%d).txt;
- 过滤出非内置模块(聚焦你主动启用的):php -m | grep -vE '^(Zend|Core|date|json|pcre)$' > /backup/php_custom_extensions_$(date +%Y%m%d).txt;
- 人工核对输出中是否包含预期项,例如 opcache、redis、swoole。
四、源码编译环境需整目录备份 PHP 根路径
若 PHP 是通过 ./configure && make && make install 安装的(常见于生产服务器),其二进制、库、头文件分散在自定义路径,无法靠包管理器重装:
- 查根目录:which php(如返回 /usr/local/php/bin/php,则根目录为 /usr/local/php);
- 打包排除日志与临时文件:tar -czf /backup/php_src_install_$(date +%Y%m%d).tar.gz -C /usr/local/ php --exclude='log' --exclude='tmp';
- 还原时解压到原位置即可,无需重新编译。
不复杂但容易忽略



















