php在linux下call to undefined function imagettftext()

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

这两个函数均须要 FreeType 库支持,在函数文档中也能够找到html

wKiom1nMgKjhhqD8AAAOcQtCxo0226.png

因此当发现调用时报错提示函数不存在,都是由于编译时没有指定freetype库激活形成的。若是须要则必需从新编译gd库并激活freetype支持。linux


freetype库是三方库,须要单独安装,若是系统中已经安装则无需安装bash

查看命令:ide

rpm -ip freetype

函数

whereis freetype

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

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

这里以:.net

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

为例:

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库,官方文档中也有说明:

wKioL1nMf-vwXBb8AADqJkh4X4g573.png

因此编译gd库须要增长--with-freetype-dir=/usr/local/freetype/2.7.1/ --enable-gd-native-ttf

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


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

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

wKiom1nMhtXRSuZ2AAAqS5jbvwU236.png


而后

make
make install

编译好后则能够查看phpinfo()

wKioL1nMhwuD6wXbAABMYou8D8U455.png

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

相关文章
相关标签/搜索