小皮面板找不到所需PHP扩展如何处理
学完这篇,你能在 10 分钟内让小皮面板(phpStudy)里缺失的 PHP 扩展真正生效,并知道下次扩展装不上时该看哪几个地方。
第一步:先确认扩展是不是真的没装
这一步要拿到「当前 PHP 到底加载了哪些扩展」的事实,避免改错文件、改错版本。
在网站根目录新建 info.php,内容写 <?php phpinfo();,浏览器访问 http://你的域名/info.php,搜索扩展名(比如 redis)。没有搜到,说明确实没加载。
也可以用命令行查,Windows 小皮面板默认路径下执行:
D:\phpstudy_pro\Extensions\php\php8.0.30nts\php.exe -m
注意:
php -m走的是 CLI 的 php.ini,网站走的是 PHP-FPM/Apache 模块的 php.ini,两者可能不是同一个文件。以phpinfo()页面里的Loaded Configuration File为准。
第二步:优先在面板里勾选开启
这一步是让面板帮你改配置,最省事。
Windows 版 phpStudy 8.1:点左侧「首页」→「软件管理」→ 切到「已安装」→ 找到当前 PHP 版本(例如 PHP 8.0.30nts)→ 点该行右侧的「设置」→ 选「扩展」→ 在弹出的扩展列表里勾选需要的项(redis、fileinfo、curl、openssl 等)→「确定」。如果扩展列表里压根没有这一项,跳到第四步。
Linux 版小皮面板:点「软件商店」→ 找到已安装的 PHP 版本 →「设置」→「扩展」→ 勾选后保存。
改完必须重启 PHP 服务,Windows 上点面板首页对应 PHP 行的「重启」或直接重启 Apache/Nginx;Linux 上执行 systemctl restart php-fpm-80 之类,具体服务名看面板显示的版本号。
第三步:面板列表里没有,就手动改 php.ini
这一步直接编辑配置文件,把扩展加载语句写进去。
从 phpinfo() 页面复制 Loaded Configuration File 的完整路径,用编辑器打开(Windows 一般在 phpstudy_pro\Extensions\php\php8.0.30nts\php.ini)。
先确认这一行没写错:
extension_dir = "D:\phpstudy_pro\Extensions\php\php8.0.30nts\ext"
再在文件末尾追加(Windows):
extension=redis
Linux 下写成:
extension=redis.so
注意:Windows 下扩展文件名是
php_redis.dll这种带前缀的,但 php.ini 里写extension=redis就能加载;Linux 下的.so不带php_前缀,别混着抄。
第四步:文件本身不存在,才去下载或编译
这一步解决「面板和 php.ini 都没这个扩展」的情况,也就是扩展包根本没落到 ext 目录。
Windows:到 https://pecl.php.net/package/扩展名 找到对应版本,再进 https://windows.php.net/downloads/pecl/releases/扩展名/版本/ 下载 dll。必须同时匹配四个条件:PHP 主次版本(8.0 对 8.0)、TS/NTS(小皮默认 NTS)、编译版本(VC15/VC16)、架构(x64)。把 dll 放进 ext 目录,再按第三步写 php.ini。
Linux:在服务器上执行
pecl install redis
安装完成后按提示把 extension=redis.so 写入 php.ini,或直接 echo "extension=redis.so" >> /www/server/php/80/etc/php.ini(路径以面板实际为准)。
注意:有些扩展有前置依赖。例如
imagick在 Linux 上要先装ImageMagick-devel,gd要装libpng-devel、libjpeg-devel。缺依赖时编译会报错,php -m里也不会出现,别以为是没写 php.ini。
第五步:重启后二次验证
重启 PHP 服务,刷新 info.php,确认扩展出现在页面上;再执行一次 php -m,确认命令行下同样加载。两处都看到,才算真正装好。验证完记得删掉 info.php。
小结
- 先查
phpinfo()和php -m,确认扩展真的没加载,并锁定正确的 php.ini 路径。 - 首选面板勾选:「软件管理」→ PHP 版本 →「设置」→「扩展」。
- 手动开启就三步:扩展文件放进
ext→extension_dir指向正确 → 写extension=xxx。 - Windows 下载 dll 必须匹配版本、TS/NTS、VC 版本、架构;Linux 用
pecl install。 - 任何改动都要重启 PHP 服务,再回
phpinfo()复验。
原文链接:https://www.gj0.com/thread-347.html
转载请注明出处并保留本声明;内容仅代表作者观点,与本站立场无关。若本文涉嫌侵权,请联系本站处理。