返回上一级
1Panel面板修改PHP构建扩展,GD扩展增加avif支持
通过微调 1Panel面板PHP构建文件,可以为扩展编译增加更多的支持。
省去自己构建麻烦
修改
1Panel的PHP构建目录在 /opt/1panel/runtime/php/
目录下。
以我的 1Panel社区版:v1.10.5-lts PHP:8.2.15 举例。
进入以下目录:
1cd /opt/1panel/runtime/php/PHP82_15/php/extensions
修改目录下的的 install.sh
文件。
搜索 Install gd
,找到判断GD扩展那一行。
我的在228行
1if [[ -z "${EXTENSIONS##*,gd,*}" ]]; then
2 echo "---------- Install gd ----------"
3 isPhpVersionGreaterOrEqual 8 0
4
5 if [[ "$?" = "1" ]]; then
6 # "--with-xxx-dir" was removed from php 7.4,
7 # issue: https://github.com/docker-library/php/issues/912
8 options="--with-freetype --with-jpeg --with-webp"
9 else
10 options="--with-gd --with-freetype-dir=/usr/include/ --with-png-dir=/usr/include/ --with-jpeg-dir=/usr/include/ --with-webp-dir=/usr/include/"
11 fi
12
13 apk add --no-cache \
14 freetype \
15 freetype-dev \
16 libpng \
17 libpng-dev \
18 libjpeg-turbo \
19 libjpeg-turbo-dev \
20 libwebp-dev \
21 && docker-php-ext-configure gd ${options} \
22 && docker-php-ext-install ${MC} gd \
23 && apk del \
24 freetype-dev \
25 libpng-dev \
26 libjpeg-turbo-dev
27fi
修改最上面的 options。
增加 --with-avif
,使用AVIF支持进行编译
1// old
2options="--with-freetype --with-jpeg --with-webp"
3
4// new
5options="--with-freetype --with-jpeg --with-webp --with-avif"
修改 apk add –no-cache 内部一行
在 freetype 和 libwebp-dev 中间添加 libavif-dev
。
GD 扩展依赖于 libavif 软件包,以提供底层 AVIF 解码。
1 apk add --no-cache \
2 freetype \
3 freetype-dev \
4 libpng \
5 libpng-dev \
6 libavif-dev \
7 libjpeg-turbo \
8 libjpeg-turbo-dev \
9 libwebp-dev \
10 && docker-php-ext-configure gd ${options} \
11 && docker-php-ext-install ${MC} gd \
12 && apk del \
13 freetype-dev \
14 libpng-dev \
15 libjpeg-turbo-dev
在 1Panel面板 运行环境 重建PHP应用
备选方案
理论上修改了构建命令,docker的缓存会失效,如果依然秒编译完成可以尝试手动清理全部缓存
https://docs.docker.com/reference/cli/docker/builder/prune/
1docker builder prune -a
2y
如果依然不行可能新版构建目录换了地方
验证
完成后可以在 phpinfo(); 查看GD扩展多出了 AVIF 支持
1AVIF Support enabled