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()

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

时间: 2024-10-15 16:55:03

php在linux下call to undefined function imagettftext()的相关文章

Mac下Call to undefined function imagettftext() 解决方案

文章转载至Mac下Call to undefined function imagettftext()终极解决方案 安装了一套onethink程序准备调试,结果在登录页面发现验证码无法显示,单独访问验证码页面报错Call to undefined function imagettftext(). 使用搜索引擎查询了下,发现问题的关键是 gd未安装freetype,访问phpinfo.php文件发现 ? 解决方案 缺点:不过phpinfo有植入广告哈 ? http://php-osx.liip.ch

CLI命令模式下Call to undefined function mysql_connect()

背景: http访问一切正常,可以connect到数据库存取数据.但是当CLI模式时会出现Call to undefined function mysql_connect() 原因:CLI模式下 没有配置php.ini文件,或者配置了php.ini,但是php.ini里没有php_mysql.dll或mysql.so模块 解决: 1 首先执行 php -m检查 mysql模块是否加载 2 执行命令 php --ini 检查命令模式的配置文件路径以及配置文件是否存在 输出如下: Configura

PHP Fatal error: Call to undefined function imagettftext()

PHP Fatal error: Call to undefined function imagettftext() 一.问题描述 安装了环境,发现验证码显示不了,查看日志:error: Call to undefined function imagettftext(),然后你去搜索百度,原因千千万,帖子里的解决方法也千千万,有的是缺gd库支持(没安装),也有可能是gd库要依赖的库等没有安装,或者说是库版本不匹配等,笔者我也捣弄了一大堆解决方式,最后的建议还是重新编译安装php,各种曲折大家可以

Fatal error: Call to undefined function imagettftext()解决办法

Fatal error: Call to undefined function imagettftext()解决办法 我的问题是php编译安装时指定了gd的目录,其实不用指定.就可以了 博客分类: php freestylephpcmsconfigure  问题描述:phpcms 安装后,不能看到验证码图片. 解决:确保php-gd和freestyle.而且确保是先安装了freestyle,然后是php-gd:如果是先安装了php-gd,那么在安装完freestyle后,需要make clean

linux重新编译安装gd,增加freetype支持,解决验证码不显示问题,Fatal error: Call to undefined function imagettftext()

问题: Fatal error: Call to undefined function Think\imagettftext() in /var/www/webreg/ThinkPHP/Library/Think/Verify.class.php on line 143 查看phpinfo()后得知,gd中没有freetype的支持 解决: 首先安装freestyle,php-gd 确保先安装freestyle,然后是php-gd:如果是先安装了php-gd,那么在安装完freestyle后,需

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

第一次在Mac下使用ThinkPHP,用到验证码功能时报如题的错误: Call to undefined function Think\imagettftext() 然后检查自己的GD库,发现安装上了的. 在网上找到解决方案: curl -s http://php-osx.liip.ch/install.sh | bash -s 5.5 参考资料来源:http://blog.csdn.net/ayonel613/article/details/51136070

fatal error: call to undefined function imagettftext

参照:http://stackoverflow.com/questions/7290958/php-fatal-error-call-to-undefined-function-imagettftext Just recompile extension gd.so, under folder php/ext/gd ./configure --with-php-config=/usr/local/php5/bin/php-config --with-freetype-dir=/usr/ --ena

Linux下链接问题小结(undefined reference)

一直以来对Linux下编译链接产生的问题没有好好重视起来,出现问题就度娘一下,很多时候的确是在搜索帮助下解决了BUG,但由于对原因不求甚解,没有细细研究,结果总是在遇到在BUG时弄得手忙脚乱得. 甚至有时候为了一个问题查了半天的资料,好不容易解决了,却因为没有记录下来或者没有弄清楚真实原因,结果第二次碰到还是要去重复前次的折腾,很是尴尬无奈. 虽然,同样的错误信息,其产生的原因不一而足,但是,总结一下终归是好的,使不知变知之,只要不在同一件事情上重复同样的错误,发现的问题越多,解决的问题越多,未

Linux下编译程序时,经常会遇到“undefined reference to XXX” 报错,

Linux下编译程序时,经常会遇到“undefined reference to XXX” 报错, 这里总结一些可能的原因和解决方案,给需要的朋友: 说道undefined reference error,先提一下Linux gcc链接规则: 链接的时候查找顺序是: -L 指定的路径, 从左到右依次查找 由 环境变量 LIBRARY_PATH 指定的路径,使用":"分割从左到右依次查找 /etc/ld.so.conf 指定的路径顺序 /lib 和 /usr/lib (64位下是/lib