1panel 面板 PHP 扩展怎么安装
学完这篇,你能在 1Panel 里给 PHP 运行环境装上扩展——面板列表里有的点几下就完事,列表里没有的(比如 swoole、imagick)也知道该进容器怎么编译,并且装完能自己验证有没有生效。
第一步:先确认你的 PHP 是「面板装的」还是「系统装的」
这一步要搞清楚你的网站到底在用哪个 PHP。1Panel 上的网站默认跑在「运行环境」里,本质是一个 PHP-FPM 的 Docker 容器;如果你之前用 apt install php 在系统里装过 PHP,那是另一套东西,面板的扩展管理管不到它。
判断方法:登录 1Panel,左侧菜单点「网站」→「运行环境」。如果这里能看到 PHP 8.1 / 8.2 / 8.3 之类的条目,状态是「已启动」,那你的 PHP 就是面板托管的,继续看第二步。
注意:部分 1Panel 版本里这个入口在「应用商店」→「已安装」下面,名字叫「PHP 运行环境」,找不到时两个地方都翻一下。
第二步:用面板勾选安装预置扩展
这一步解决 90% 的需求,redis、opcache、gd、zip、bcmath、mysqli、exif、intl 这些常用扩展都在预置列表里,装完不用敲一行命令。
具体操作:
- 在「运行环境」列表里点你的 PHP 版本名称(比如
php8.2),进入详情页。 - 在上方标签栏切到「扩展」。
- 页面会列出所有可勾选的扩展,勾上你要的,比如
redis、opcache、exif。 - 点右下角「保存」或「确认」,面板会自动重建并重启这个 PHP 容器。
等容器状态重新变成「已启动」,扩展就装好了。整个过程大概十几秒。
注意:保存后容器会重启,此刻跑在这个 PHP 上的网站会有几秒 502/连接失败,避开访问高峰期操作。
第三步:手动编译安装列表里没有的扩展
这一步解决「预置列表里找不到」的情况,比如 swoole、imagick、mongodb、grpc。装完的扩展在容器里长期有效,但容器被重建(升级 PHP 小版本、在面板上点「重建」)之后会丢。
先拿到容器名,在 1Panel 的「终端」里,或者 SSH 连上服务器执行:
docker ps --format "{{.Names}}\t{{.Image}}" | grep -i php
输出里那一列名字就是要用的容器名,形如 1Panel-php8-xxxx。把它复制出来,然后进容器:
docker exec -it 你的容器名 bash
进容器后先补编译工具(官方 PHP 镜像里 $PHPIZE_DEPS 这个变量还在,直接引用即可):
apt-get update && apt-get install -y $PHPIZE_DEPS
然后按扩展类型二选一:
pecl install redis # PECL 上的扩展
docker-php-ext-install bcmath # PHP 源码自带、但没编进去的扩展
pecl install 过程中如果问你 enable igbinary support? 之类,不确定就一路回车用默认值。装完一定要生成 ini,否则 PHP 不会加载:
docker-php-ext-enable redis
imagick 这种依赖外部库的,得先装库再编译:
apt-get install -y libmagickwand-dev
pecl install imagick
docker-php-ext-enable imagick
最后退出容器并重启它:
exit
docker restart 你的容器名
注意:如果你希望扩展永久保留,不要在容器里手改,改用「自定义镜像」的方式:先在面板里查一下这个容器的镜像名(
docker inspect 容器名 --format '{{.Config.Image}}'),然后写个 Dockerfile,FROM那个镜像,把上面的pecl install写进RUN,再用这个自定义镜像建新的运行环境。
第四步:验证扩展是否真的生效
这一步确认前面没白干。最省事的是命令行验证:
docker exec 你的容器名 php -m | grep -i redis
能打印出 redis 就说明加载成功了。如果什么都没输出,多半是 ini 没生成,回容器里再执行一次 docker-php-ext-enable redis 并重启。
另一种验证方式更直观:在网站根目录建一个 info.php,内容只写 <?php phpinfo();,浏览器访问它,用 Ctrl+F 搜扩展名,能在列表里看到就成功了。
注意:验证完记得删掉
info.php,这种文件会把服务器环境信息全暴露出来。
小结
- 面板托管的 PHP 是 Docker 容器,扩展要在「网站 → 运行环境 → PHP → 扩展」里装,不是在系统里
apt install。 - 预置列表能覆盖 redis、gd、zip 等常用扩展,勾选后点保存,容器会自动重启。
- 列表里没有的扩展(swoole、imagick 等)进容器用
pecl install或docker-php-ext-install,别忘了docker-php-ext-enable生成 ini。 - 容器重建会丢手动装的扩展,要长期保留就做自定义镜像。
- 装完用
php -m或phpinfo()验证,并记得删掉临时的 info.php。
原文链接:https://www.gj0.com/thread-1177.html
转载请注明出处并保留本声明;内容仅代表作者观点,与本站立场无关。若本文涉嫌侵权,请联系本站处理。