docker环境中安装gd扩展
方案1
一般情况下可能会想到安装命令
docker-php-ext-install gd
但是很有可能出现错误
configure: error: png.h not found.
因为可能本身没有安装png等处理库
方案2
#更新安装依赖资源库
apt update
#安装基础库
apt install -y libwebp-dev libjpeg-dev libpng-dev libfreetype6-dev
#设置配置文件
docker-php-ext-configure gd --with-webp-dir=/usr/include/webp --with-jpeg-dir=/usr/include --with-png-dir=/usr/include --with-freetype-dir=/usr/include/freetype2 --with-ttf --enable-gd-native-ttf
#安装扩展
docker-php-ext-install gd
#使扩展可用
docker-php-ext-enable gd
安装过程中如果出现了以下错误,可能是apt的源设置的不正确
可以在/etc/apt/source.list中设置中科大的源再尝试上面的操作
deb http://mirrors.ustc.edu.cn/debian stable main contrib non-free
deb-src http://mirrors.ustc.edu.cn/debian stable main contrib non-free
备注:如果提示没有找到freetype-config,可以进行此如下操作自行编译稍微低一点的版本,由于 php-fpm 镜像使用的 libfreetype6 版本为 2.9.1-3 ,版本过新会导致 freetype-config 无法正常使用。解决方案
可以选择自行编译低版本的 freetype 2.8.1。
上代码。
RUN apt-get update && \
apt-get install -y --no-install-recommends \
wget \
&& wget http://download.savannah.gnu.org/releases/freetype/freetype-2.8.1.tar.gz \
&& tar zxvf freetype-2.8.1.tar.gz \
&& cd freetype-2.8.1/ \
&& ./configure --prefix=/usr/include \
&& make && make install \
&& rm -rf ../freetype-2.8.1