CentOS单独编译安装PHP gd库扩展,Call to undefined function imagettftext()

本文解决TP5框架中验证码无法显示的问题,详细介绍了由于GD扩展缺失导致的错误,并提供了安装freetype、libjpeg、libpng等依赖库的步骤,以及如何在PHP中配置GD库的方法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

用tp5的时候用到了验证码,但是显示不出来,报了个错:Call to undefined function imagettftext(),百度了一下发现是gd扩展的问题。

  1. freetype

wget http://download.savannah.gnu.org/releases/freetype/freetype-2.4.0.tar.bz2

tar jxvf freetype-2.4.0.tar.bz2

cd freetype-2.4.0

./configure --prefix=/usr/local/freetype && make && make install
2. jpegsrc

wget http://www.ijg.org/files/jpegsrc.v9.tar.gz

tar zxvf jpegsrc.v9.tar.gz

cd jpeg-9

./configure --prefix=/usr/local/jpeg && make && make install
3. libpng

wget http://jaist.dl.sourceforge.net/project/libpng/libpng16/1.6.18/libpng-1.6.18.tar.gz

tar zxvf libpng-1.6.18.tar.gz

cd libpng-1.6.18

./configure --prefix=/usr/local/libpng && make && make install

因为时间的问题,可能有些包不能下载不了了,可以在网站上找其他版本的安装包,原理都是一样的。
接下来需要cd到php源码包的 gd 目录,否则会报 cannot find config.m4 之类的错误。
然后在这个目录执行命令 /usr/local/php/bin/phpize。什么时候需要用到 phpize 呢?当我们需要再加些模块,又不想重新编译php,这些我们就可以用phpize了。我的PHP安装在 /usr/local/php/ 这个目录里,可以根据个人情况修改。

/usr/local/php/bin/phpize

下来就可以编译安装了

./configure --with-php-configure=/usr/local/php/bin/php-config  --with-jpeg-dir=/usr/local/jpeg  --with-png-dir=/usr/local/libpng   --with-freetype-dir=/usr/local/freetype

或者

./configure --with-php-config=/usr/local/php/bin/php-config  --with-jpeg-dir=/usr/local/jpeg  --with-png-dir=/usr/local/libpng   --with-freetype-dir=/usr/local/freetype
make && make install

接着修改php.ini文件 在 ;extension=php_zip.dll 下面添加一行 extension=gd.so
重启apache或者nginx
然后用phpinfo看一下是不是成功了。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值