直接切换php 7.4到8.2易致白屏或fatal error,须先安装并运行php 8.2、确认站点使用php-fpm、验证扩展兼容性及nginx配置,并排查socket路径、权限与session目录冲突。

Fatal error。
确认 PHP 8.2 已安装且 php-fpm 正在运行
宝塔不会自动装新 PHP,面板里“PHP 版本”下拉为空,90% 是因为没装或没启。
- 进「软件商店」→ 搜索
PHP 8.2→ 点安装(选「编译安装」,极速安装常缺fileinfo、opcache) - 装完去「软件管理」列表看状态:必须是「已安装」+「正在运行」,不是「已停止」或带红色感叹号
- 如果 php-fpm 没起来,点右侧「设置」→「服务」→ 手动启动,或查日志:
/www/wwwlogs/php82.log
检查站点是否走 php-fpm(而非 mod_php)
Nginx 站点默认走 php-fpm,能自由切换;Apache + mod_php 的站点,PHP 版本下拉框根本不会出现,或者点了也无效。
- 进「网站」→ 点目标站点 →「设置」→「配置文件」,搜
php_admin_value或SetHandler - 如果搜到,说明当前用的是 mod_php,得手动改回 php-fpm 方式(建议新建站时一律选 Nginx)
- 确认 Nginx 配置里有类似
include enable-php-82.conf;这样的行,而不是enable-php-74.conf
验证扩展与语法兼容性(别跳过)
PHP 8.2 移除了 create_function()、禁用动态属性、强制参数类型声明,老程序一跑就崩。
- 先在子目录或测试站部署副本,执行:
php82 -v和php82 -m | grep -E "(redis|mysqli|fileinfo)",确认基础扩展存在 - 重点检查是否依赖已移除扩展:
mcrypt、mysql(非mysqli)、ext-mongo—— 有就得换方案 - 打开「网站」→「设置」→「PHP 版本」,选 8.2 后别急着保存,先点右上角「测试配置」,看是否报
nginx: configuration file /www/server/nginx/conf/nginx.conf test is successful
502/空白页的快速定位路径
这不是“没切成功”,而是请求发出去了,但 PHP-FPM 没接住——socket 路径错、权限不对、进程挂了,三者占 90%。
- 看错误日志:
/www/wwwlogs/你的域名.error.log,盯住这句:connect() to unix:/tmp/php-cgi-82.sock failed - 确认 socket 路径一致:Nginx 配置里的
fastcgi_pass值(如unix:/tmp/php-cgi-82.sock)要和php-fpm82.conf里listen =的值完全匹配 - 检查 socket 文件权限:
ls -l /tmp/php-cgi-82.sock,属主应为www,否则加listen.owner = www到 php-fpm 配置并重启
.user.ini 和 session 目录冲突。根目录下有 .user.ini 会覆盖面板设置;多个 PHP 版本共用同一个 session.save_path,会导致登录态串掉。切之前,先重命名 .user.ini 测试,再把 session 目录按版本隔离,比如 /www/php_session/82。php免费学习视频:立即使用
踏上前端学习之旅,开启通往精通之路!从前端基础到项目实战,循序渐进,一步一个脚印,迈向巅峰!











