1Panel 面板安装 PHP XLoader 扩展踩坑实录

宸玚
2026-05-02
点 赞
0
热 度
2
评 论
0
  1. 首页
  2. 技术分享
  3. 1Panel 面板安装 PHP XLoader 扩展踩坑实录

最近把服务器上的站点从宝塔面板迁移到了1Panel 面板,原本运行正常的 API 站点直接报错,核心原因就是依赖的XLoader 扩展装不上,折腾了快一小时才搞定,特意记录下踩坑和解决过程,给同样迁移的朋友避坑。

过程

我的站点核心依赖 PHP 的 XLoader 扩展,宝塔面板里一键安装 XLoader 毫无压力,迁移到 1Panel 后,PHP 环境正常,但站点直接提示XLoader extension not loaded,第一步自然是去 1Panel 后台装扩展。

1Panel 的 PHP 管理界面自带 XLoader 扩展选项,本以为一键安装就能解决,结果点了安装后:

  • 面板显示安装成功

  • 刷新 PHP 信息,XLoader 扩展压根没加载

  • 站点依旧报错,纯纯的无效安装

这时候就放弃了面板一键安装,打算手动编译 / 上传 XLoader 文件安装,这也是第二个坑的开始。

宝塔里手动装扩展的习惯是:

  1. 下载对应 PHP 版本的 XLoader.so 文件

  2. 上传到 PHP 扩展目录

  3. 在 php.ini 里写绝对路径加载扩展

我照着这个思路操作:

  1. 下载了 PHP8.2 对应的 XLoader.so

  2. 上传到目录:/opt/1panel/runtime/php/PHP82/extensions/no-debug-non-zts-20220829/

  3. 在 php.ini 里添加配置:

extension = /opt/1panel/runtime/php/PHP82/extensions/no-debug-non-zts-20220829/XLoader.so

重载 PHP 配置后,直接报错:找不到该扩展文件 / 目录,反复检查路径、权限都没问题,就是加载失败。

冷静下来想了想,宝塔是原生环境,1Panel 是容器化部署,这就是核心区别。

容器化的 PHP,根本识别不了宿主机的绝对路径,它只会读取容器内的扩展默认目录

于是我打开 php.ini,翻了翻面板已经安装好的其他扩展(apcu、redis、memcached 等),写法全是这样:

extension="apcu.so"
extension="memcached.so"
extension="redis.so"
extension="imagick.so"
extension="igbinary.so"

没有任何绝对路径,只写扩展文件名 + 引号

照着其他扩展的格式,我把之前的绝对路径配置删掉,替换成一行:

extension="XLoader.so"

保存 php.ini,重载 PHP 配置,再刷新 PHP 信息,XLoader 扩展直接加载成功!站点瞬间恢复正常。

总结

  1. 放弃绝对路径:1Panel 的 PHP 是容器化环境,不要写宿主机的物理路径,容器识别不到

  2. 标准写法:直接用 extension="扩展名.so",和面板自带扩展保持一致

  3. 文件位置:XLoader.so 必须上传到 PHP 的默认扩展目录(面板一键安装其他扩展的同级目录)

  4. 避坑关键:从宝塔迁移过来,千万别用原生面板的操作习惯,容器化是最大的区别

如果大家也遇到 1Panel 安装 XLoader / 其他自定义 PHP 扩展失败,优先检查配置写法,别再踩容器化路径的坑了!


用键盘敲击出的不只是字符,更是一段段生活的剪影、一个个心底的梦想。希望我的文字能像一束光,在您阅读的瞬间,照亮某个角落,带来一丝温暖与共鸣。

宸玚

站长

具有版权性

请您在转载、复制时注明本文 作者、链接及内容来源信息。 若涉及转载第三方内容,还需一同注明。

具有时效性

目录

欢迎来到宸玚的博客,为您导航全站动态

3 文章数
10 分类数
0 评论数
2标签数
最近评论