蛋疼的玩意,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包就行了,可是问题依然存在,于是一段时间内竟然忽略了这个真正的原因。
tar -jxvf freetpe.tar.gz cd freetype ./configure --prefix=/usr/local/freetype --enable-shared make && make install
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中的配置路径就行了