php -v 不显示 PHP 8.1 是因系统 PATH 优先调用旧版本;需将 /www/server/php/81/bin 加入 PATH 前置位并 source /etc/profile,同时执行 bt restart 使宝塔识别新版本,否则站点创建页不显示 PHP 8.1 选项。

PHP 8.1 安装后 `php -v` 不显示或版本仍是旧版
这说明系统调用的不是你新装的 PHP,而是 PATH 中优先级更高的另一个版本。宝塔面板安装的 PHP 默认路径是 /www/server/php/81/bin/php,但终端执行 php 命令时,往往走的是系统自带(如 CentOS 的 /usr/bin/php)或旧版宝塔 PHP。
验证方式:
- 运行
which php看实际调用路径 - 运行
/www/server/php/81/bin/php -v直接调用宝塔 PHP,确认是否真装成功 - 对比
php --ini和/www/server/php/81/bin/php --ini输出的Loaded Configuration File是否一致
若不一致,需把宝塔 PHP 路径加进系统 PATH:编辑 /etc/profile,末尾追加 export PATH="/www/server/php/81/bin:$PATH",再执行 source /etc/profile。注意:仅对当前 shell 有效;要全局生效,需重启 SSH 连接或服务器。
宝塔站点创建页看不到 PHP 8.1 选项
这不是 PHP 没装好,而是宝塔面板没“认出”它——常见于安装后未重启服务,或面板版本太老不识别新版 PHP。
立即学习“PHP免费学习笔记(深入)”;
必须操作:
- 先确认宝塔版本 ≥ 8.0.5(旧版如 7.x 明确不支持 PHP 8.1),升级命令:
wget -O update.sh http://download.bt.cn/install/update.sh && bash update.sh - 安装 PHP 后务必执行
bt restart(不是只重启 PHP,是整个面板服务) - 检查
/www/server/php/81/下是否存在bin/php和etc/php.ini,缺任一文件即安装失败 - 若仍不显示,可手动在站点配置中指定:编辑 Nginx 配置文件,把
fastcgi_pass指向unix:/tmp/php-cgi-81.sock,并确保 PHP-FPM 81 服务已启动(bt 81)
PHP-FPM 81 进程跑着,但 `.php` 文件返回 502 或空白
这是 Nginx 和 PHP-FPM 链路断开的典型表现,和 PHP 本身是否“生效”无关,但会让你误判为安装失败。
关键排查点:
- 运行
ps aux | grep php-fpm,确认有php-fpm: master process (/www/server/php/81/etc/php-fpm.conf)进程 - 查监听方式:
ls -l /tmp/php-cgi-81.sock(socket)或ss -tulpn | grep :9000(TCP),再核对 Nginx 配置里的fastcgi_pass是否匹配 - 检查 socket 文件权限:
srw-rw---- 1 www www是正常状态;若属主是root或权限为600,Nginx 工作进程(www 用户)无法访问 - 临时关掉 SELinux:
setenforce 0,排除策略拦截(CentOS/RHEL 常见)
改完必须闭环:nginx -t && nginx -s reload,然后看 /www/wwwlogs/your-site.error.log 里有没有 connect() failed 或 No input file specified。
扩展加载失败、`phpinfo()` 里看不到模块
PHP 8.1 扩展不生效,90% 不是 JIT 或配置错,而是扩展没装进正确位置,或没写进正确的 php.ini。
重点确认:
- 扩展文件路径是否匹配 ABI:
/www/server/php/81/lib/php/extensions/no-debug-non-zts-20210902/(PHP 8.1 的唯一合法目录,编号不能错) -
extension=redis.so这行必须写在 FPM 对应的php.ini里(/www/server/php/81/etc/php.ini),而不是 CLI 的 ini;CLI 和 FPM 加载不同配置 - 别用
extension="redis"这种简写,必须带.so后缀;也别加引号包裹路径 - 装完扩展后,必须执行
bt 81(重启 PHP-FPM),bt 11(重载面板)无效
最易被忽略的一点:某些扩展(如 opcache)需要额外启用开关,光加 extension=opcache.so 不够,还得配 opcache.enable=1 和 opcache.enable_cli=0。



















