最新消息:数据恢复成功,博主又回来啦,和你们同在!

解决GD 2.0.35无法显示验证码,libJPEG Version unknown

VPS ZmmFly 2135浏览 1评论

首先说一句…自从换了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 是不是 可以显示版本号了?

验证码是不是可以显示了?

转载请注明:SH自留地 » 解决GD 2.0.35无法显示验证码,libJPEG Version unknown

发表我的评论
取消评论

Protected by WP Anti Spam

表情

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址

网友最新评论 (1)

  1. 你好,你参与了话题#GD#,点击http://t.cn/zTHeJlW 查看更多精彩!
    话题6年前 (2013-06-03)回复