最近做老的 wordpress 站点迁移时,因项目过于老旧,需要安装 php7.3 版本,但是 php7.3 版本的 php 包中没有 GD 扩展,所以需要自己编译安装,在这记录一下安装过程.
GD 库需要安装的东西比较多,需要安装以下几个包
- zlib
- libpng
- libjpeg
- freetype
- libwebp
# 下载源码
这里我每个都选择下载最新版
wget https://www.zlib.net/zlib-1.3.1.tar.gz | |
wget https://sourceforge.net/projects/libpng/files/libpng17/1.7.0beta89/libpng-1.7.0beta89.tar.gz | |
wget http://www.ijg.org/files/jpegsrc.v9f.tar.gz | |
wget https://sourceforge.net/projects/freetype/files/freetype2/2.13.2/freetype-2.13.2.tar.gz |
# 分别编译安装
# 安装 zlib | |
tar zxvf zlib-1.3.1.tar.gz | |
cd zlib-1.3.1/ | |
./configure --prefix=/usr/local/zlib | |
make && make install | |
# 安装 libpng | |
tar zxvf libpng-1.7.0beta89.tar.gz | |
cd libpng-1.7.0beta89/ | |
./configure --prefix=/usr/local/libpng | |
make && make install | |
# 安装 libjpeg | |
tar zxvf jpegsrc.v9f.tar.gz | |
cd jpeg-9f/ | |
./configure --prefix=/usr/local/libjpeg --enable-shared | |
make && make install | |
# 安装 freetype | |
tar zxvf freetype-2.13.2.tar.gz | |
cd freetype-2.13.2/ | |
./configure --prefix=/usr/local/freetype | |
make && make install | |
# 安装 libwebp | |
# 因为 libwebp 的源码包缺很多依赖文件,所以这里直接使用 dnf 安装,简单快捷 | |
dnf install libwebp |
# 编译安装 GD 扩展
进入到 php7.3 的源码目录下的 ext 文件夹下,有个 gd 文件夹
cd php-7.3.33/ext/gd |
首先执行 phpize
, 生成 configure
文件,然后就可以进行编译了,命令如下:
/usr/local/php73/bin/phpize | |
./configure \ | |
--with-php-config=/usr/local/php73/bin/php-config \ | |
--with-freetype-dir=/usr/local/freetype \ | |
--with-jpeg-dir=/usr/local/libjpeg \ | |
--with-png-dir=/usr/local/libpng \ | |
--with-zlib-dir=/usr/local/zlib \ | |
--with-webp-dir=/usr/lib64 \ | |
--with-libdir=/usr/local/lib | |
make && make install |
# 修改 php.ini 文件添加 GD 库
# 一条命令搞定 | |
echo extension=gd.so >> /usr/local/php73/lib/php.ini |
添加后重启 php-fpm 服务即可.