Linux下PHP-FPM升级通用步骤(以Ubuntu/Debian为例)
升级PHP-FPM需遵循“准备-卸载旧版-安装新版-配置验证”的流程,以下是详细操作:
sudo cp -R /etc/php-fpm.d /etc/php-fpm.d.backup # 备份FPM池配置
sudo cp -R /var/www/html /var/www/html_backup # 备份网站根目录
sudo apt update && sudo apt upgrade -y # Debian/Ubuntu
sudo yum update -y # RHEL/CentOS
php-fpm -v
若需升级到较新版本的PHP(如8.2),官方仓库可能未及时同步,需添加第三方PPA(如Ondřej Surý的PHP仓库):
sudo apt install software-properties-common -y # 安装软件包管理工具
sudo add-apt-repository ppa:ondrej/php -y # 添加PHP PPA
sudo apt update # 更新软件包列表
卸载旧版本以避免版本冲突(保留配置文件以便迁移):
sudo apt remove --purge php*-fpm -y # 卸载所有PHP-FPM包
sudo apt autoremove -y # 清理无用依赖
根据需求安装指定版本的PHP-FPM及常用扩展(如MySQL、cURL、mbstring):
# 示例:安装PHP 8.2-FPM及扩展
sudo apt install php8.2-fpm php8.2-cli php8.2-mysql php8.2-curl php8.2-mbstring php8.2-xml -y
sudo cp /etc/php-fpm.d.backup/www.conf /etc/php/8.2/fpm/pool.d/www.conf # 替换为实际版本路径
www.conf(如监听方式、用户/组权限、进程数):sudo nano /etc/php/8.2/fpm/pool.d/www.conf
listen指令路径(如/run/php/php8.2-fpm.sock或127.0.0.1:9000);user/group为Web服务器用户(如www-data)。sudo systemctl start php8.2-fpm
sudo systemctl enable php8.2-fpm
sudo systemctl status php8.2-fpm
若状态显示“active (running)”,则表示启动成功。php-fpm8.2 -v # 或直接运行 php-fpm -v
phpinfo.php文件并访问,验证PHP版本:echo "<?php phpinfo(); ?>" | sudo tee /var/www/html/info.php
浏览器访问http://服务器IP/info.php,查看“PHP Version”是否为升级后的版本。若升级成功且无兼容性问题,可彻底删除旧版本PHP-FPM以释放空间:
sudo apt remove --purge php7.*-fpm -y # 删除所有PHP 7.x-FPM包
sudo apt autoremove -y # 清理残留依赖
pm.max_children参数调整),需仔细检查;fastcgi_pass指令指向新版本的PHP-FPM socket或端口(如fastcgi_pass unix:/run/php/php8.2-fpm.sock;);sudo apt -f install修复。