为现有PHP 7.2.34编译升级GD至2.3.3是否可行?
在Amazon Linux 2上为PHP 7.2.34升级GD至2.3.3版本
完全可行,需通过编译独立的libgd库,再重新编译PHP的GD扩展来替换默认的捆绑版本,具体步骤如下:
1. 安装编译依赖
先安装编译所需的工具及依赖包:
yum install -y gcc make autoconf libpng-devel libjpeg-turbo-devel freetype-devel libwebp-devel
2. 编译安装libgd 2.3.3
- 创建临时工作目录并进入:
mkdir -p /tmp/libgd && cd /tmp/libgd - 克隆指定版本的libgd源码:
git clone --branch gd-2.3.3 https://github.com/libgd/libgd.git . - 配置编译参数(指定安装路径及支持的图像格式):
./configure --prefix=/usr/local/libgd --with-png --with-jpeg --with-freetype --with-webp - 编译并安装:
make && make install
3. 准备PHP 7.2.34源码用于编译GD扩展
- 创建PHP源码临时目录并进入:
mkdir -p /tmp/php-src && cd /tmp/php-src - 下载并解压对应版本的PHP源码:
wget https://www.php.net/distributions/php-7.2.34.tar.gz tar zxf php-7.2.34.tar.gz && cd php-7.2.34/ext/gd
4. 编译PHP的GD扩展
- 生成扩展配置文件:
phpize - 配置扩展,关联刚安装的libgd库:
./configure --with-gd=/usr/local/libgd --with-jpeg-dir=/usr --with-png-dir=/usr --with-freetype-dir=/usr --with-webp-dir=/usr - 编译并安装扩展:
make && make install
5. 替换原有GD扩展并验证
- 查看PHP扩展目录路径:
php -i | grep extension_dir - 备份原有GD扩展文件(假设扩展目录为
/usr/lib64/php/modules/,根据实际路径调整):mv /usr/lib64/php/modules/gd.so /usr/lib64/php/modules/gd.so.bak - 复制新编译的GD扩展到目标目录:
cp /tmp/php-src/php-7.2.34/ext/gd/modules/gd.so /usr/lib64/php/modules/ - 重启PHP服务(根据实际运行方式选择):
# 若使用PHP-FPM systemctl restart php-fpm # 若使用Apache mod_php systemctl restart httpd - 验证GD版本:
输出应显示php -i | grep "GD Version"GD Version => 2.3.3
注意事项
- 编译过程中若提示依赖缺失,根据提示安装对应的
-devel包 - 操作前建议备份PHP配置文件及相关业务数据,避免意外
- 若后续PHP版本升级,需重新执行上述步骤编译对应版本的GD扩展
内容的提问来源于stack exchange,提问作者complez
相关产品推荐
相关产品推荐

