安装GD库和FREE TYPE

蛋疼的玩意,GD库装上后FREE TYPE不装的话。PHPCMS的验证码出不来,因为里面有个imagettftext 函数不存在,所以在网上找了个教程,解决了问题,谢谢作者


http://www.topthink.com/topic/7645.html


常见的GD未安装及BOM问题办法就不细说了,度娘上答案较多。
可是我遇到的验证码不显示不是这类原因导致的,反复检查最后才确定了是FreeType字体引擎未安装的原因。

首先,打开TP调试模式,右键打开验证码错误图标,会发现标志性的报错,

call to undefined function Think/imagettftext
单独php探针一下,环境中的确不存在这个函数。查php手册,发现该函数需要GD和freetype支持,GD我是确认安装的,freetype没有安装,起先一度以为unbuntu下apt-get搜索到并安装一个libfreetype6-dev包就行了,可是问题依然存在,于是一段时间内竟然忽略了这个真正的原因。

最后才明确到问题的确是在freetype 上,只是我的安装freetype的方法不对。
大家如果排除了GD和bom问题,验证码依然不存在,就可以在phpinfo查看GD节区,看看是否有三行Freetype的描述(广义来说,其实这也算GD支持不完整的问题),如果没有,就应该是没有安装freetype了

解决方法如下:
先去Freetype官网http://www.freetype.org/下载源码
tar -jxvf freetpe.tar.gz
cd freetype
./configure --prefix=/usr/local/freetype --enable-shared
make && make install


Ok, freetype安装好后,我们重新编译GD把freetype编译进去
在GD拓展源码目录下
cd 你的源码目录/ext/gd   #进入gd源码目录
你的目录/phpize      #可能需要你phpize生成configure文件,如果已存在,则跳过
./configure --prefix=/usr/local/gd --with-freetype-dir=/usr/local/freetype

#configure这一步可能会报错不能include freetype.h 文件,原因是configure里对头文件指定路径不对,需要你去freetype的安装路径下做个软连接。
#cd /usr/local/freetype/include/freetype2
#sudo mkdir freetype
#cd freetype
#ln -s ../freetype.h freetype.h
#ok,我们继续下去

make && make install
最后把生成的gd.so文件根据你的php.ini中的配置路径就行了

最后查看一下phpinfo,已经出现freetype信息,验证码也能正常显示了。

尼玛,这个帖子发不出来,包含敏感词汇,那给个提示哪里敏感呗,还得一个个来排查
好吧,我想问,为啥帖子里中文单词chuli要算作敏感词啊,坑爹是不                                  

你可能感兴趣的:(安装GD库和FREE TYPE)