WordPress2.5 Error 500解决方法

4月23日,我报告过《WordPress2.5 Error 500》:

在发布Blog内容时经常会出现Error 500错误:

Error 500 - Internal server error

An internal server error has occured!
Please try again later.

这种情况我遇见过多次,今天看到王佩也报告了类似的事情。根据我的个人经验,这种情况发生于在线编辑帖子的时候。如果帖子并没有立即发布,而是点击了右侧的“保存”,那么再点“发布”,就会发生500错误。为什么会这样,我不知道。希望在WP2.5.1里能够解决这个问题。

今天,专业程序员卡飞菲已经提供了一个错误分析和解决办法。错误原因是:

post_name 中的的多字节文字被 urlencode 成这样 "%e6%88%91%e6%93%8d%ef%bc%81",只要 % 后面跟了 bcdeufFosxX 中任意一个(覆盖了大半个中文区域),就造成 vsprintf 函数调用失败,返回 false,而上层的循环一直在等它返回一个非false的值,直到程序死掉。

我基本不懂,他提供了一个修改代码和一个上传文件的方法来解决这个问题,请移步到他的Blog学习、下载:

Bug分析和解决办法

我将持续关注此事进展。

WordPress2.5 Error 500

WordPress升级至2.5以后,给人的观感很好,而且用起来非常流畅。但是,在发布Blog内容时经常会出现Error 500错误:

Error 500 - Internal server error

An internal server error has occured!
Please try again later.

这种情况我遇见过多次,今天看到王佩也报告了类似的事情。根据我的个人经验,这种情况发生于在线编辑帖子的时候。如果帖子并没有立即发布,而是点击了右侧的“保存”,那么再点“发布”,就会发生500错误。为什么会这样,我不知道。希望在WP2.5.1里能够解决这个问题。

彻底挂掉

虽然www.hecaitou.net使用了江东大侠提供的静态化插件,但是,最终还是被DreamHost停权了。来信如下:

Hello,
This e-mail is to inform you that your sites have been responsible for recent high loads on the shared web hosting server "pacer". It seems that the majority of the system's load was originating from your user "hecaitou".

Here are your specific CP minutes (like CPU usage) from yesterday:

hecaitou 75796 7.37% 333043.92re 0.23% 366.49cp 14.73%

A typical high end user will appropriate about 150cp per day, an average user around 60-80. Your CP now at 366 (Way too high). A webserver typically uses about 1500cp total, so you're now using a very large chunk of the system's resources.

Due to numerous complaints from other customers on the server, I've been forced to disable the sites under this users home directory by creating an .htaccess file with the line "Deny from all".

Here was the server load before and after disabling your site:

pacer: 08:16 AM# cd www.hecaitou.net/

pacer: 08:16 AM# uptime

08:16:43 up 3 days, 10:37, 2 users, load average: 14.04, 17.25, 27.17

pacer: 08:16 AM# nano .htaccess (This is where I added the deny from all line to your .htaccess file)

pacer: 08:19 AM# uptime

08:20:55 up 3 days, 10:41, 3 users, load average: 7.95, 12.47, 22.82

You can re-enable your site by removing the "Deny from all" line from the .htaccess file, but I ask that you immediately rectify this problem by reducing your load in whatever way plausible. You may find the following article helpful in this endeavor:

http://wiki.dreamhost.com/Finding_Causes_of_Heavy_Usage

Joshua also previously mentioned that you should enable wp-cache or wp-super-cache, however grepping your wp-config.php returned no indication that you've done so.

Please respond to me in regards to this issue so I can verify that you're taking a proactive approach in reducing your site's usage, and to keep an eye on the server's load. If you re-enable these sites without contacting support beforehand your account may be disabled if it causes another high load situation in the future.

It's possible that your site(s) have outgrown the shared hosting environment.

If you do wish to continue running these scripts and are unable to optimmize them, please consider

upgrading to a DreamhostPS (http://dreamhostps.com), or you may be interested in obtaining a dedicated server through our hosting partner, Hosting.com

(http://dreamhost.com/dedicated-hosting.html)

If you have any other questions or concerns please let me know. I'd be happy to help!

Thanks!

推荐一款WordPress插件

现在你点开www.hecaitou.net或者www.caobian.info的任何一篇帖子,在文章底部都会出现一个分享条。把鼠标点到“收藏和分享”字样上,就会弹出一个方框:

如果你想把帖子分享或者搜藏到你的标签网站,那么只需要轻轻一点就OK了。

也许你要问,这么合适中国Blogger使用的插件会不会安装起来很麻烦?放心,它完全是傻瓜化的安装和设置。如果你使用的是Wordpress,那么只需要上传到Plugin目录,然后激活就好了。当然,如果您是高手高手高高手,那么它也有手动添加的设置,您可以把它放置到模板上任意您想显示的位置。

也许你又要问,这么简便实用的插件是否要收费?当然是免费的,作者我爱水煮鱼LiuYang都是网络著名的IT牛人,怎么可能向你收费呢?收费就不牛了,牛人直接在纳斯达克上市圈钱。而且,Wordpress的传统是各种周边产品除了偶尔几个模板会收费之外,一切都是免费的。

也许你还要问:和菜头,你丫不是组团忽悠我吧?请注意,我不是和小丫,你也不是山东25岁的大叔。在我这里看看效果,你觉得好用就用,不喜欢就拉倒。

心动不如行动,行动不如冲动,请立即点开免费页面,现在就下载这个插件,立即让你的Blog为无数网友分享收藏:17FAV.com

致谢:感谢我爱水煮鱼先生,您设计了软件,还亲自上门提醒我更新,让我实在感动。您问到了我是否真的姓和,那么,请允许我带着无限诚意看着您的眼睛回答:你可知马靠不是我真姓?很多人以为我姓和,或者复姓和菜,他们都错了,我复姓和菜头,名字一直还没想好。但是,现在我已经有了一个备选答案:

和菜头杏花春雨里吹牛到天明

再次感谢!

强烈谴责:今天,一个叫“博客堂”的博客Trackback了我,在那篇到了八辈子霉的帖子里说:连和菜头都敢自己把Blog升级到了Wordpress2.5。对于这种极端不负责任的谣言,我只能表示深切的愤怒和强烈的谴责---我的Blog都是Wordpress.org的技术员亲自帮我升级的!

成个世界清静晒

《大话西游》里悟空悲苦地向观音姐姐倾诉了一番他被唐僧折磨的痛苦,最后完全陷于自己疯狂的想象,在想象中他拖出唐僧的肠子勒住脖子,然后“手起刀落,哗!成个世界清静晒”。最后这句话由台湾的石班瑜用国语念出来就是:整个世界清净了!

如果你也同我一样开设了Blog,而且是使用国外开发的系统,那么你总有一天会有和孙大圣一样的愿望,想让世界清净一会儿。不开Blog,就不知道Spam的恐怖。我有3个Blog,其中之一的后台管理界面上可以看到这么一句提示:从您初次安装 Akismet 起,Akismet 已经为您截获了398,971条垃圾评论。

三十九万八千九百七十一条垃圾评论!这不是Spam,而是Spam轰炸。德国人对伦敦,美国对巴格达都没有做到这种惨绝人寰的程度。它们的内容无非是网络赌博、伟哥代售、魔兽金币、色情广告这些毫无价值的东西,它们拥有一个共同特点:都是英文。

对于我这样使用Wordpress的用户来说,一般的选择是使用Akismet。然而上面的悲情提示你已经看到了,Akismet虽然强悍,但是不能断根,Spam还是如同潮水一般涌过来,涌过来。涌过来。398,971就是个明证,这个数字说明我前往后台亲手删除过那么多条Spam。

单纯的Akismet不起多少作用,考虑到大部分Spam都是英文这一特点,一位中国网络神人冰古提交了他的神作《Some Chinese Please》。这是一个插件,安装之后会对留言进行筛选,把只有数字和拉丁字母的留言劫下来,要求对方输入起码一句中文。这就是很多国外读者所抱怨的事情:你这个破地方还一定要输入中文?

是的,Akismet+Some Chinese Please=No English Spam。古老的方块字再次焕发青春,不要给拉丁字母以任何机会,伟大的仓颉先生今天生日快乐!我当然知道有接近10%的读者使用非中文操作系统,甚至电脑上都没有中文输入法。对于这个插件给大家造成的麻烦,我深表遗憾。但是,应对之道也非常简单---你总能复制粘贴一句中文进来吧?

冰古的这个小插件非常有效,比之前输入验证码的方法好多了。我觉得,这是个非常容易的选择。相比复制粘贴一句中文,你是否愿意使用以下这种验证码?

不过,Some Chinese Please对于中文Spam没有多少效果。我的后台还是能看到许多诸如液压机、干燥箱之类的垃圾留言,而且还傻兮兮地带着一句留言“楼主说得太好了!”或者“我不认为这个能奏效”。不过,它们的服务器地址都类似,所以在反复向Akismet提交之后,它们的数量也大大减少。中国垃圾,用洋工具来打。洋垃圾,用中土工具来打。如此,两手都要抓,两手都很硬。

关于Spam我最后要补充一点,那就是最近依然有部分英文Spam混了进来,原因是有汉奸在协助它们。方法是在洋垃圾里夹杂一句中文,于是就骗过冰古的插件。我个人觉得,帮助洋垃圾进入中文Blog系统的这些人应该被视为通敌叛国,合该沿长安街两边全吊死在路灯上。

成个世界清静晒!