PHP Fatal error: Call to undefined function imagettfbbox() 解决方法

在使用图片验证码扩展时,发现验证码无法显示,单独访问验证码页面报错

Call to undefined function imagettftext()。

使用搜索引擎查询了下,发现问题的关键是

gd未安装freetype,访问phpinfo.php文件发现

解决方案

第一步安装freeType

我的php版本是7.4.10 对应 freetype版本 2.8.0

freetype下载地址:https://download.savannah.gnu.org/releases/freetype/

下载 freetype后解压执行以下命令:

cd ./freetype2.8

./configure --prefix=/usr/local/freetype

make && make install

第二步安装GD包括freetype

若已安装gd,需要重新编译安装gd扩展

切换到PHP ext源码gd目录,执行以下命令

/usr/local/php/bin/phpize

./configure --with-php-config=/usr/local/php/bin/php-config --with-webp=/usr/include/webp --with-jpeg=/usr/include --with-freetype=/usr/local/freetype2/

make && make install

如果之前没有安装过gd 把gd.so 写入php.ini

如果以前装过gd 直接重启php服务即可

引用链接

[1] https://download.savannah.gnu.org/releases/freetype/: https://download.savannah.gnu.org/releases/freetype/