首先说一句…自从换了php自带的GD后感觉一切真美好~~~~
博文小故事
两个多月来…GD把博主折腾得痛不欲生…
这还得从一个多月前说起…
那时博主心血来潮…想搞个短址玩玩…于是乎…掏腰包买了两个四位的PW域名…
再到网上找了个感觉不错的短址程序装上…结果后台登不上去(验证码不显示…PHP又不报错…)
谷歌搜啊…百度找啊…折腾了不知道多少回…结果还是没解决…
好吧…短址只能暂时搁浅了…
再说前几天吧…总停不下的博主想重新拾起建博之初的下载站的心愿…
于是弄了个帝国下载…在000webhost(以下简称000)调试编写模板,但是000几分钟就来一次“大姨妈”…
博主实在忍无可忍了…直接搬到自己心爱的VPS上来调试编写模板
模板下了一半…手残打开了登陆验证码…于是杯具了…
和上面一样验证码无法显示…
这次博主发誓一定要解决了这个坑爹的问题…于是这篇博就出炉了…
正文
好吧…博主的废话的确很多…但每篇博文都有一段曲折的经历…
首先,得准备的东西,VPS肯定是不能少的…还得有一份php、freetype、jpeg9的源码(freetype、jpeg9请自行编译安装)
php源码在哪儿下载就不多说了…freetype的源码下载地址可以参见: FreeType源码
如果PHP编译时带有GD选项,那么,请去除,然后重新编译~~~!
例如:编译PHP时去除:–with-jpeg-dir=/usr/local/jpeg/ –with-freetype-dir=/usr/local/freetype/ –enable-gd-native-ttf
编译安装完成后来到PHP源码目录下的ext/gd/libgd目录
打开gd_jpeg.c
定位到111行
将花括号整个替换为:
{ switch(JPEG_LIB_VERSION) { case 62: return "6b"; break; case 70: return "7"; break; case 80: return "8"; break; case 81: return "8a"; break; case 82: return "8b"; break; case 83: return "8c"; break; case 84: return "8d"; break; case 90: return "9"; break; case 91: return "9a"; break; case 92: return "9b"; break; case 93: return "9c"; break; case 94: return "9d"; break; default: return "unknown"; } }如果不想编辑替换可以直接下载我提供的gd_jpeg.c文件
http://www.400gb.com/file/22269620
理论上…可以支持无限个版本的jpeg…只要硬盘够大~~~哈哈~~~~
好了,处理好gd_jpeg.c后返回上一级目录
/usr/local/php/bin/phpize ./configure --with-php-config=/usr/local/php/bin/php-config --with-jpeg-dir=/usr/local/jpeg/ --with-freetype-dir=/usr/local/freetype/ #php、jpeg和freetype安装路径视个人而定,这里只做示例 make cd modules #将 gd.so 复制到PHP的扩展目录,然后在php.ini中添加一行extension=gd.so最后,重启FPM或者是Web服务软件~~~再看看phpinfo
libJPEG Version unknown 是不是 可以显示版本号了?
验证码是不是可以显示了?