小皮面板中命令行php -v与网站实际PHP版本不一致属正常设计,因命令行走PATH下的php.exe,网站走PHP-FPM进程,二者独立;须分别重启Web服务、更新环境变量并分层验证。

小皮面板里命令行 php -v 显示的版本和网站实际运行的 PHP 版本不一致,不是故障,而是设计如此——命令行走的是系统 PATH 里的 php.exe,网站走的是 PHP-FPM 进程,两者完全独立。修法就是分别处理,不混用、不误判。
网站用的 PHP 版本没变?先确认是不是真没切成功
- 在小皮面板切换 PHP 版本后,必须手动点击【重启 Nginx】或【重启 Apache】,否则 PHP-FPM 不会加载新版本,请求仍走旧进程。
- 检查站点是否绑定了正确版本:进【网站 → 管理 → PHP 版本】,下拉菜单里选中的必须是你想用的那个(如
php8.3.36nts),不是全局设置或其它站点的设置。 - 浏览器访问
phpinfo.php时可能缓存旧结果,按Ctrl + F5强刷,或改文件名(如info2.php)再试。 - 注意 NTS/TS 匹配:Nginx 必须配 NTS 版 PHP,Apache 配 TS 版;选错会导致服务降级回退到上一个可用版本,面板显示“已启动”,实际跑的是旧版。
命令行 php -v 还是旧版?那是环境变量没动
- Windows 下运行
where php,看输出路径指向哪个php.exe,大概率是旧版目录(如C:\php\php7.4.3\php.exe)。 - 进「系统属性 → 高级 → 环境变量」,在 Path 里删掉所有旧 PHP 的路径(例如
C:\phpstudy_pro\Extensions\php\php7.4.3nts)。 - 如果希望命令行也用小皮里的新版 PHP,把对应路径(如
C:\phpstudy_pro\Extensions\php\php8.3.36nts)加到 Path 最顶部。 - 关掉所有 CMD/PowerShell 窗口,重新打开,再执行
php -v验证。
怎么确认两边都真正生效了
-
服务层验证:小皮首页看 PHP-FPM 是否“运行中”,进程名里应含你选的版本号(如
php-fpm83.exe);Nginx/Apache 也要显示“运行中”。 -
响应层验证:建
test.php,内容为,浏览器访问输出应与目标版本一致。 -
命令行验证:新开终端执行
php -r "echo PHP_VERSION;",输出应与你刚配置的 PATH 路径下的版本一致。 -
扩展层别漏:如果网站报
Class not found或extension missing,说明新 PHP 的php.ini没启用必要扩展(如curl、pdo_mysql),需进小皮【PHP 设置 → 扩展管理】勾选并重载服务。
不复杂但容易忽略
php免费学习视频:立即使用
踏上前端学习之旅,开启通往精通之路!从前端基础到项目实战,循序渐进,一步一个脚印,迈向巅峰!











