wordpress主题使用timthumb无法生成略缩图

序·简介

        最近给一客户搭建一个网站,使用wordpress程序,购买了一套英文版商业主题,运行环境是VPS,LNMP环境,遇到一些问题该主题调用略缩图使用的是timthumb,timthumb报错,无法正常工作。所有的略缩图都没法显示,查找了很久没有找到问题在哪里,可能是因为问题发生的太少了。

一、错误信息

错误信息:

A TimThumb error has occured

The following error(s) occured:

  • Could not find the internal image you specified.

 

二、问题解决方法    

1、问题原因

   问题原始是TimThumb无法找到图片,也即说TimThumb识别的路径跟图片所在的路径是有一些差异。

2、解决方案

    找到主题中的timthumb.php打开它,用Ctrl+F 查找到
define(‘VERSION’,’版本号’);
在它前面添加一行
$_SERVER['DOCUMENT_ROOT'] = '路径';
例如我的路径为/var/www/
$_SERVER['DOCUMENT_ROOT'] = '/var/www/';
保存后就可以解决问题了;有什么不明白的欢迎留言询问!
提示:如果直接复制无效,请手动输入,网页显示的为编辑器转换过的HTML代码,可能会出现一些差异。

如有疑问

如果你又什么疑问可以,在文章下方留言询问,请使用正确邮箱,当你得提问被回复时,系统会自动发送邮件提示你。

已有 32 条评论
  1. alex

    您好,目前我也遇见了您上述的问题。我用的是Windows系统,在本地测试用的是XAMPP的集成环境,主题测试一切OK。可我把主题安装到godaddy服务器上之后,缩略图便无法预览(生成不了预览图),出现和您上述一样的问题。。。求指导。。。谢谢我timthumb的版本是2.8的。

    alex 回复
    1. 观察

      如果是虚拟主机的话,你可以用PHP探针先获取当前的路径,在像上文描述中的那样添加就可以了。

      观察 回复
      1. alex

        如您所示,我按照您的改过了,可是,还是没有预览图生成。。。

        <?php
        /**
        * TimThumb by Ben Gillbanks and Mark Maunder
        * Based on work done by Tim McDaniels and Darren Hoyt
        * http://code.google.com/p/timthumb/
        *
        * GNU General Public License, version 2
        * http://www.gnu.org/licenses/old-licenses/gpl-2.0.html
        *
        * Examples and documentation available on the project homepage
        * http://www.binarymoon.co.uk/projects/timthumb/
        */

        $_SERVER['DOCUMENT_ROOT'] = 'http://www.ouhaosky.cn/oh/wp-content/uploads/';

        define ('VERSION', '2.8'); // Version of this script
        //Load a config file if it exists. Otherwise, use the values below.

        alex 回复
        1. 观察

          你填写的不对,我说的路径是指你用php探针探测到的路径。 例如我的路径是 /var/www/ ,你探测到的也应该是这种类似的路径的。我这里有一个php探针你可以下载回去上传到网站根目录上。
          下载地址:http://pan.baidu.com/share/link?shareid=4092251400&uk=923110146 解压后上传到网站根目录,然后查看探针探测到服务器参数中的探针路径 那就是你应该填写的。

          观察 回复
  2. alex

    您好,首先谢谢您提供的悉心帮助,我找到了地址,并改写了如下:
    $_SERVER['DOCUMENT_ROOT'] = 'D:/Hosting/11206612/html/';

    define ('VERSION', '2.8');

    可还是原来的样子。。。

    我查了下预览图的链接地址还是原来的,例如:
    Query String : src=http://www.ouhaosky.cn/oh/wp-content/uploads/2013/07/bvl2.jpg&w=87&h=67&zc=1&q=100

    地址未发生更改。。。。

    我根目录下所有文件都是可读可写的。。。

    alex 回复
    1. 观察

      我刚才看了你得网站,你得路径应该是 D:/Hosting/11206612/html/oh/

      观察 回复
    2. 观察

      而且你调用的方法也太正确,例如:
      http://www.oco3.com/wp-content/themes/u-design/scripts/timthumb.php?src=http://www.oco3.com/wp-content/uploads/2013/07/IMGP3320.jpg&w=400&h=0&zc=1&q=100

      观察 回复
    3. 观察

      你应该是用rewrite绑定的域名
      你看如果用这种路径调用的话它就可以找到了,但是你得路径中多了一个oh,它就找不到了。

      http://www.ouhaosky.cn/wp-content/themes/teardrop/timthumb.php?src=http://www.ouhaosky.cn/wp-content/uploads/2013/07/gucci-cruise-2013-benjamin-grillon-04.jpg&w=490&h=250&zc=1&q=100

      观察 回复
  3. alex

    我马上来试一下!!!艾玛,突然感觉有万道金光从你身后射出!!!

    alex 回复
  4. alex

    那个。。。还是要劳驾您。。。请问我要怎么修改?我的所有文件都是放在oh文件夹下的。。。主题的timthumb,php也不是我写的,我无从下手。。。求指点。。。劳驾您了!!!万分感激!!!

    alex 回复
    1. 观察

      $_SERVER['DOCUMENT_ROOT'] = ‘D:/Hosting/11206612/html/oh’;
      添加这个试试,应该可以的

      观察 回复
  5. alex

    我刚刚瞎捣鼓,居然捣鼓成功了,就第一时间向前辈报告!

    我第一步按您所说,把server 路径改了下。。。

    第二步,又到wordpress后台控制里改动如下:

    设置 ——> 常规选项

    WordPress 地址(URL) www.ouhaosky.cn(原来是www.ouhaosky.cn/oh)
    站点地址(URL) www.ouhaosky.cn(原来是www.ouhaosky.cn/oh)

    虽然现在我的ouhaosky.cn这个网站能够显示预览特色图了,目的达到了。但是!我之所以把ouhaosky.cn 该网站的所有文件放在oh 里,是!因!为!oh的上级文件夹(也就是我的虚拟主机根目录下)还有另一个网站!也是基于WOrdpress的,也安装了一整套wordpress。。。。。该网站出现的问题和ouhaosky一样的。。。我按照ouhaosky的方法没能解决根目录网站的bug。。。现在ouhaosky的问题解决了,但是网页加载和显示狂慢。。。不知是不是两个在打架了。。。我想删掉根目录的网站,又不敢!!!好不容易搞定一个,别又出什么乱子啊!!!!

    alex 回复
    1. 观察

      根目录的那个网站,路径设置为:$_SERVER['DOCUMENT_ROOT'] = ‘D:/Hosting/11206612/html’;
      俩个网站的路径是不一样的,应该不会有什么问题。

      观察 回复
  6. alex

    嗯!!那我来折腾一下~~谢谢谢谢!!!!!!

    alex 回复
  7. 李益达

    楼主,我也不能显示缩略图了,只是部分不能显示。www.tretars.com我的地址是多少...

    李益达 回复
    1. 希声OCO

      我看了你的博客了,缩略图是可以正常显示的。

      希声OCO 回复
      1. 李益达

        没有,那是因为我把timthumb关掉了,但是导致了缩略图比例不一致。我现在开启了,仍然有不少不能显示,再帮忙看看吧

        李益达 回复
      2. 李益达

        感觉不稳定

        李益达 回复
        1. 希声OCO

          测试了下,没有问题,图片都可以显示,一些无法显示的图片,单独去查看也是可以显示的,说明程序没问题,可能是你的空间给你的限制。建议沟通下你的空间提供方询问下,或者更换空间。

          希声OCO 回复
  8. dxdragon

    博主,我也遇到了这个问题,自己没有搞定……我的博客dxdragon.cwsurf.de,我实际的WordPress的url是dxdragon.cwsurf.de/blog/,在其下面放了PHP探针,即dxdragon.cwsurf.de/blog/tz.php,看PHP相关参数(PHP页面根目录),貌似是不是主机不支持timthumb??帮忙看看吧,谢谢了

    dxdragon 回复
    1. 希声OCO

      是因为Rewrite的原因,timthumb无法找到文件,建议你不要用子目录绑定域名.http://dxdragon.cwsurf.de/blog/wp-content/themes/ChannelPro/timthumb.php?src=http://dxdragon.cwsurf.de/blog/wp-content/uploads/2014/12/WinDjView-80x80.jpg&h=80&w=80&a=t&zc=1 这个是你调用图片的方式,如果改成http://dxdragon.cwsurf.de/blog/wp-content/themes/ChannelPro/timthumb.php?src=http://dxdragon.cwsurf.de/wp-content/uploads/2014/12/WinDjView-80x80.jpg&h=80&w=80&a=t&zc=1这样就可以调用到图片了。

      希声OCO 回复
      1. dxdragon

        谢谢博主,按照你的方法,已经搞定了~

        dxdragon 回复
      2. 小鱼

        原来是这原因。完美解决。感谢博主

        小鱼 回复
        1. 希声OCO

          不客气

          希声OCO 回复
          1. 小鱼

            我zc参数选的是1,但是这样图片被裁剪后就不完整了(比如一个人物图片的被裁剪后头没了)如果选参数0的话图片又被拉伸变形了,这有没有什么比较好的解决办法?谢谢

            小鱼
          2. 希声OCO

            这个没什么特别好的方法,我一般是特色图像用固定比例的照片。

            希声OCO
          3. 小鱼

            好的,谢谢

            小鱼
  9. doudo

    我的也是无法显示缩略图求教 楼主!!!www.qbaoba.com

    doudo 回复
    1. 希声OCO

      建议你检查下文件权限相关是否正常

      希声OCO 回复
      1. doudo

        cache 文件夹的权限么

        doudo 回复
        1. 希声OCO

          具体最好检查下日志,看看报的错时什么

          希声OCO 回复
  10. 防水中国

    希望对你有帮助,windows上面是不会出现这个问题的,因为cache没有权限,同时里面有一个index.html也要给777权限。今天就卡在了index.html没有给777权限。其实它提示的错误很清楚了,只是不懂英文唉

    防水中国 回复
发表新评论