php在linux下call to undefined function imagettftext()

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了php在linux下call to undefined function imagettftext()相关的知识,希望对你有一定的参考价值。

imagettftext和imagefttext两个函数在生成验证码或需要向图片写入文字时候常用,在linux环境下只开启gd库是不够的。

这两个函数均需要 FreeType 库支持,在函数文档中也可以找到

技术分享

所以当发现调用时报错提示函数不存在,都是因为编译时没有指定freetype库激活造成的。如果需要则必需重新编译gd库并激活freetype支持。


freetype库是三方库,需要单独安装,如果系统中已经安装则无需安装

查看命令:

rpm -ip freetype

whereis freetype

下载地址: https://www.freetype.org/download.html

最好使用.net域名下的,.org很容易造成超时。

这里以:

https://sourceforge.net/projects/freetype/files/freetype2/2.7.1/freetype-2.7.1.tar.gz/download

为例:

tar -zxf freetype-2.7.1.tar.gz
cd freetype-2.7.1/builds/unix
./configure --prefix=/usr/local/freetype/2.7.1 --without-harfbuzz
make
make install

说明:如果不进入builds/unix目录下编译会提示:make: Nothing to be done for `unix‘. 当然也没有什么影响。

安装freetype需要包:

 external
 bzip2
 libpng
 harfbuzz
可以使用yum安装,但harfbuzz在yum中没有所以需要编译安装,而编译时又需要freetype包,所以可以不安装这个包,然后在freetype编译时增加--without-harfbuzz即可。


安装好freetype后即可编译gd库,官方文档中也有说明:

技术分享

所以编译gd库需要增加--with-freetype-dir=/usr/local/freetype/2.7.1/ --enable-gd-native-ttf

注意:如果freetype时默认安装无需指定目录。


编译前一定要记得 make clean 清除上次的编译内容,尤其是已经编译安装过的。

./configure 配置后可以查看  Configuring extensions 下面是否有相关成功记录:

技术分享


然后

make
make install

编译好后则可以查看phpinfo()

技术分享

出现这个即安装成功,可以使用这两个函数。

本文出自 “秋风扫落叶” 博客,谢绝转载!

以上是关于php在linux下call to undefined function imagettftext()的主要内容,如果未能解决你的问题,请参考以下文章

Call to undefined function ImageCreate()错误解决 扩展gd库

linux已经安装了php扩展uuid 但是还报Call to undefined function uuid_make()这个错误,为甚么呢。

Fatal error: Call to undefined function fnmatch() 解决

Fatal error: Call to undefined function pasterTempletDiy()

Mac php使用gd库出错 Call to undefined function imagettftext()

php装上sqlserver驱动后仍然显示Call to undefined function sqlsrv_connect()问题