宝塔面板下拉菜单显示的是“php-82”而非“php 8.2”,小数点后版本不体现;若未见该选项,说明php 8.2虽安装但未运行,需确认软件商店中状态为“已安装”且“运行中”,并检查php-fpm进程与nginx fastcgi_pass路径是否匹配。

网站设置里选“php-82”不是“PHP 8.2”
宝塔下拉菜单显示的是带前缀的内部标识,比如 php-82,而不是你想象中的 PHP 8.2 或 8.2.10。版本号小数点后几位(如 .10)在面板里不体现,只看主次版本。如果你在下拉列表里没看到 php-82,说明该版本虽已安装但未运行,或安装失败。
确认方法:
进「软件商店」→ 搜索 PHP → 找到 PHP-8.2 → 看状态是否为「已安装」且右侧显示「运行中」;
点它右侧的「设置」→ 切到「服务」页 → 确认 php-fpm 是绿色「正在运行」;
终端执行 ps aux | grep php-fpm,应出现类似 /www/server/php/82/etc/php-fpm.conf 的进程。
php -v 还是旧版?别碰 /usr/bin/php 软链
网站用的 PHP 和命令行用的 PHP 完全是两套路径。你在终端敲 php -v 看到的版本,取决于 PATH 和 /usr/bin/php 软链接指向——而宝塔默认不改这个。
- 先查当前 CLI 实际调用哪版:
which php和ls -l /usr/bin/php - 临时测试新版:
/www/server/php/82/bin/php -v(这个路径必须存在且可执行) - 永久切换 CLI 默认:
软件商店 → PHP-8.2 → 设置 → 启用「PHP命令行版本开关」(此操作会安全更新软链,比手动ln -sf更稳) - 不推荐自己
rm -f /usr/bin/php && ln -sf ...,某些宝塔插件或定时任务依赖原始链接,容易中断
切换后 502 或白屏?重点检查三处配置
保存了「PHP版本」选项并点了提交,不代表就通了。Nginx 必须能连上 PHP-FPM 的 socket,且扩展、禁用函数、用户限制都得对得上。
-
/www/server/php/82/etc/php-fpm.d/www.conf里的listen = /www/server/php/82.sock,要和 Nginx 配置中fastcgi_pass的路径完全一致 - 进「PHP-8.2 设置 → 禁用函数」,把
opcache.enable临时关掉再开一次,避免旧缓存干扰(尤其 Laravel/ThinkPHP) - 检查网站根目录有没有
.user.ini,里面若含php_version=72或open_basedir锁死旧路径,必须删或改 - 编译安装时漏了关键扩展?
fileinfo、curl、openssl、opcache四个必须勾选,否则 Composer 或上传功能直接报错
验证必须用 phpinfo(),不能只信首页
首页能打开 ≠ PHP 版本已切。有些框架会缓存响应头,或者 CDN 返回旧内容。真实生效看运行时输出。
操作:
用宝塔文件管理器或 FTP,在网站根目录新建 info.php,内容只有:
<?php phpinfo(); ?>
浏览器访问
https://yourdomain.com/info.php,重点核对两处:顶部
PHP Version 是否为 8.2.10;下方
Loaded Configuration File 路径是否为 /www/server/php/82/etc/php.ini。
如果 PHP Version 对了但扩展没加载,说明 extension_dir 或 extension= 行写错了路径;如果版本还是旧的,90% 是网站设置里根本没选对 php-82,或者选了没点「提交」。
php免费学习视频:立即使用
踏上前端学习之旅,开启通往精通之路!从前端基础到项目实战,循序渐进,一步一个脚印,迈向巅峰!











