文档章节

解决Onethink验证码不显示问题

麦拂沙
 麦拂沙
发布于 2015/07/27 04:05
字数 522
阅读 1431
收藏 0

常见的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 php源码目录/ext/gd
phpize  #生成configure文件
./configure --prefix=/usr/local/gd --with-freetype-dir=freetype源码目录  #这步可能会报错不能include freetype.h 文件,
                                                                       #原因是configure脚本里某个头文件路径不对,需要你去freetype源码目录下做个软连接。
cd freetype源码目录/include/freetype2
mkdir freetype
cd freetype
ln -s ../freetype.h freetype.h

make && make install

最后把生成的gd.so文件移动到你的php.ini中配置的拓展路径就行了

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

© 著作权归作者所有

共有 人打赏支持
麦拂沙
粉丝 22
博文 120
码字总数 109526
作品 1
海淀
高级程序员
私信 提问
OneThink 1.0 正式版发布,内容管理框架

OneThink1.0正式版发布 OneThink是一个开源的内容管理框架,基于最新的ThinkPHP3.2版本开发,提供更方便、更安全的WEB应用开发体验,采用了全新的架构设计和命名空间机制,融合了模块化、驱动...

流年
2013/12/19
5K
15
OneThink V1.0.130929开发版发布

OneThink V1.0.130929开发版发布------V1.0.130929开发版本是在9月19日发布的1.0beta版本的基础上,改进用户体验、增加了一些功能。 注意事项: 1、OneThink安装要求PHP5.3+版本; 2、目前开...

麦当苗儿
2013/09/30
764
1
OneThink内容管理框架即将发布

继ThinkPHP的SAE引擎、云引擎和TPM(ThinkPHPMobile)之后,上海顶想信息科技将于中秋发布一款内容管理框架OneThink,正式向应用开发迈出新的一步。 作为国内领先的WEB应用开发框架提供商,顶...

Topthink
2013/08/26
5.3K
4
onethink不能安装到已经存在的数据库中的问题

onethink官方版本 onethink1.0140202.zip 放到环境中,进行安装,到第二步时,怎么也通不过 因为我是安装到一个已经存在的库中,才有此问题 而该版本的InstallController的第81行的对已存在库...

qingfeng哥
2014/04/26
0
1
subversion的安装与多项目权限配置笔记

1:安装过程,这里采用了yum的方式安装,编译的话有点麻烦。 [root@localhost data]# yum install subversion 执行以下的命令: svn --version 如果显示 svn, version 1.6.11 (r934486) 之类...

风一样的世界
2014/05/23
0
0

没有更多内容

加载失败,请刷新页面

加载更多

C++ vector和list的区别

1.vector数据结构 vector和数组类似,拥有一段连续的内存空间,并且起始地址不变。 因此能高效的进行随机存取,时间复杂度为o(1); 但因为内存空间是连续的,所以在进行插入和删除操作时,会造...

shzwork
今天
3
0
Spring之invokeBeanFactoryPostProcessors详解

Spring的refresh的invokeBeanFactoryPostProcessors,就是调用所有注册的、原始的BeanFactoryPostProcessor。 相关源码 public static void invokeBeanFactoryPostProcessors(Configu......

cregu
昨天
4
0
ibmcom/db2express-c_docker官方使用文档

(DEPRECIATED) Please check DB2 Developer-C Edition for the replacement. What is IBM DB2 Express-C ? ``IBM DB2 Express-C``` is the no-charge community edition of DB2 server, a si......

BG2KNT
昨天
3
0
Ubuntu 18.04.2 LTS nvidia-docker2 : 依赖: docker-ce (= 5:18.09.0~3-0~ubuntu-bionic)

平台:Ubuntu 18.04.2 LTS nvidia-docker2 版本:2.0.3 错误描述:在安装nvidia-docker2的时候报dpkg依赖错误 nvidia-docker2 : 依赖: docker-ce (= 5:18.09.0~3-0~ubuntu-bionic) 先看一下依......

Pulsar-V
昨天
4
0
学习笔记1-goland结构体(struct)

写在前面:若有侵权,请发邮件by.su@qq.com告知。 转载者告知:如果本文被转载,但凡涉及到侵权相关事宜,转载者需负责。请知悉! 本文永久更新地址:https://my.oschina.net/bysu/blog/3036...

不最醉不龟归
昨天
4
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部