PHP 5.6.40 php2shell 修复
文件:php2shell-5.6.40.patch、build-php2shell-56.sh、verify-cutover.sh
php2shell-5.6.40.patch.zip
php2shell-5.6.40.patch.zip
verify-cutover.sh.zip
约定(按需替换):
- 源码目录:
~/php-5.6.40 - 旧安装:
/usr/local/php - 新安装:
/usr/local/php-5.6.40-php2shell
1. 试打补丁
patch -p1 --dry-run -d ~/php-5.6.40 < php2shell-5.6.40.patch四个文件都 checking file 且无报错 → 继续。
2. 编译到新目录
chmod +x build-php2shell-56.sh verify-cutover.sh
./build-php2shell-56.sh ~/php-5.6.40脚本会:复用现有 configure 参数(prefix 和配置路径自动换成新目录)→ 复制源码到 /tmp 编译 → 自检 OOM 退出码 → 装到新 prefix。
自检看到 退出码: 1 才继续;255 说明补丁没生效。
3. 同步配置文件
cp /usr/local/php/etc/php.ini /usr/local/php-5.6.40-php2shell/etc/php.ini
cp /usr/local/php/etc/php-fpm.conf /usr/local/php-5.6.40-php2shell/etc/php-fpm.conf新 prefix 的配置路径已在第 2 步指向新目录,两份文件都必须存在。
4. 检查配置
/usr/local/php-5.6.40-php2shell/sbin/php-fpm -t必须 test is successful。
5. 切换
停旧 FPM / Apache,改 systemd 或启动脚本指向 /usr/local/php-5.6.40-php2shell,然后重启。
6. 验证
./verify-cutover.sh /usr/local/php /usr/local/php-5.6.40-php2shell全部 OK 即完成。
回滚
启动脚本改回 /usr/local/php