Loading...

Archive for May, 2008

    AD: 子非鱼母婴社区 | 猛买 | Jobsdigg | 很棒的男装店

WP-SuperCache后台空白的解决

blog的服务器搬家之后我就尝试了WP-Cache和WP-SuperCache,它们的共同问题是启用插件后,我在后台打开它们的管理界面,只能看到空白,某个函数可能在执行过程中被终止了。

可是WP生成一个页面要查询几十次数据库,这个着实很汗颜。后来我用了Cos-HTML-Cache,但一味地生成HTML,虽然负载低了,灵活性降低很多。今天脑袋里灵光一闪,想自己写一个基于memcached的WP插件(服务器上有memcached)。于是打开WP-SuperCache想看看他的实现,顺手调试了一下。没想到这一下就发现了问题,不出所料,确实是程序莫名终止了。

if ( !wp_cache_check_link() ||
!wp_cache_verify_config_file() ||
!wp_cache_verify_cache_dir() ) {
echo “<br>Cannot continue… fix previous problems and retry.<br />”;
echo “</div>\n”;
return;
}

里面有这么一段,看样子是用来验证一些东西。我直接把这段注释掉,WP-SuperCache后台就可以打开了。后面都很顺利,现在WP-SuperCache工作很正常。

大致浏览了一下,程序里很多判断都可以去掉(前提是你很了解它的原理了)。阉割之后,应该还会快一些呢。

WP-SuperCache空白问题解决

携程金卡

今天收到建行的信,除了账单还有一张携程的VIP卡。最近在很多场合看到携程的VIP卡,比如新蛋之前的活动,几个银行业都在发。看来携程是在发力狠做了。拿到之后不知道能干啥,就去搜了一下,发现和大众点评一样,可以在很多特约的商户打折。不过这些特约商户大多是些饭店,和携程以前做的机票酒店不太合拍。

巧的是,上周末刚刚在一家大众点评的“会员卡商户”那边搓了一顿,最后用点评的VIP卡88折结帐,感觉不错。但这种方式和以前大众点评盘算的消费然后积分是区别很大的,以前积分的方式,每个加盟的商户都得有一个点评的POS机,可以对线下商户进行完善的控制,但实际上很难做,倒不如现在直接出示会员卡打折来得实惠。

印象中七天酒店的郑南雁就是从携程出来的。七天、点评、携程这几家,线上的推广和线下的拓展做得实在出色,还有一个杭州的口碑网,将来没准也是个可以独立上市的公司。

携程VIP金卡

地震

昨天下午上课回来看到GT上的Tiny签名改成“地震了”,还以为是只有北京地震,不由地担心在北京的某人。后来alone突然说,四川地震了,马上打开网易新闻,就看到了这张截图:

多个地区感受地震

全国都在震,第一感觉就是国家研制出什么新武器了,不得了。怎么也不相信是一次普通地震。后来情况越来越明朗,被这样的超级地震震惊。

在小学时,学校就发了地震方面的书籍,还搞地震演习,让小朋友们都钻到桌子下面。那时听说山西采煤把地都采空了,所以很可能发生地震。这么多年过去,我从小学到初中,再到高中都没等到山西的地震,而这次据说杭州也有震感,只是我一点都没感觉。被震到是不幸的,没经历过地震却总觉得不完整。如今经济全球化,连地震都全球化了。

抓虾widget拖慢页面

前些日子放了一个抓虾的widget在侧栏,不但很丑,还在我换了服务器之后明显能感觉到页面加载变慢,很长时间都停留在从widget.zhuaxia.com读取数据的阶段——以前没感觉到是觉得服务器在美国,本来就该这么慢。于是就把抓虾的widget干掉了。玩不起就别玩

APC引起500错误

昨天说了在Windows上面安装APC,我用Apache的ab.exe测试了一下之前和之后服务器生成页面的速度,提升确实很明显。但是很快遇到了问题:服务器经常出现500错误,网站怎么也打不开。

在日志里的错误信息是这样的:

[client 208.36.144.6] (OS 121)信号灯超时时间已到  : FastCGI: failed to connect to server “D:/AppServ/php5/php-cgi.exe”: CreateFile()/WaitNamedPipe() timed out
[Tue May 13 09:53:10 2008] [error] [client 208.36.144.6] FastCGI: incomplete headers (0 bytes) received from server “D:/AppServ/php5/php-cgi.exe”

搜了一下,没搜到解决办法。又是一个不眠之夜,今天早上只好把APC关掉,访问就正常了。想了一下,failed to connect to server的错误,可能是fastcgi进程因为APC需要不停地查询缓存、更新缓存、整理碎片而被拖慢了。这该如何解决呢?

Windows上安装APC

心血来潮去翻Fenng以前整理出来的大型网站们批露的架构方面的信息,看到的都是很典型的,基于ROR财帮子(不晓得现在JavaEye流量大还是财帮子大),基于.net的“PlentyOfFish”,深藏不露的豆瓣以及非常平民化的facebook(用的是PHP+MySQL)。有点纳闷,这些网站怎么没一个用java的,虽然说是“Architecture Scale”,但看起来java确实不受待见阿。

翻到Facebook的时候注意到它用了Memcached和APC。Memcached我已经用在服务器上了,APC以前在Dreamhost时使用过,不过效果一般。这里谈到Facebook用APC使得“一个页面显示的时间从4000多毫秒降到了100多毫秒”,肯定不是所有用了APC的地方都能有这么大的提升,但是使用APC确实能为PHP加速。

由于PHP是个解释型语言,执行的时候先得把程序读进来,(进行基本的差错,)然后“解释”成机器可以跑的程序。解释就会生成Opcode,如果可以把这个Opcode缓存起来,下次就能避免重新解释了。想想一下很多大型的系统,一个页面会包含很多文件,所以把这些文件的opcode存储起来,效果有点像“片段缓存”。我所知道的可以做PHP中opcode缓存的除了APC还有XCache,今天就安装了APC在自己的服务器上。

借用下面这张图,应该能弄清楚APC的作用了。

APC的原理

网上有很多在linux服务器上安装APC的指导,其实作为PHP的扩展,在windows的安装大同小异。先去perl4win.php.net,搜索APC,就能找到可以下载的DLL文件。这时需要选择一个和服务器PHP版本相匹配的。我服务器上的PHP是5.2.3,就下载了最后一个DLL。

从pecl4win.php.net下载apc

下载回来后放到PHP插件文件夹,一般是php目录下的”ext”文件夹。之后编辑php.ini,在末尾加入:

[apc]
extension=”php_apc.dll”
apc.enabled=1
apc.shm_segments=1
apc.shm_size=48
apc.ttl=7200
apc.user_ttl=7200
apc.num_files_hint=1024
apc.mmap_file_mask=d:/tmp/apc.XXXXXX
apc.enable_cli=1

其中apc.shm_size就是给APC开的缓存大小,单位是M。我之前开了16M,有点小,就改成了48M。保存php.ini之后重启apache,如果你有一个显示phpinfo()的网页,刷新就能看到安装完成的apc了。

如果想得到apc运行的更多信息,可以去下载一个APC源代码包,里面有一个apc.php,放在web目录下就可以看到APC运行的详细情况。见下面的图:

APC在windows服务器上的运行状态

要有新武器诞生了?

贴图不说话

多个地区感受地震

短信照登

+8615025104813

请你速把钱汇到中国工商银行。卡号6222021901002182259户名,刘民军。切记。

七天

以前骂过七天连锁酒店,算是个人恩怨,今天说点好话。要是七天酒店也参与CPS就好了,我写这blog还可以小赚一笔。

我虽然不是那种经常出门的“商务人士”,但对出门怎么能便宜点住还是很关心。前些日子看到7天的网站上出来公告,网站的Alexa排名在同行业中仅次于某全球型连锁酒店,国内第一。其实Alexa排名说服力也有限,但七天在这几年的迅速崛起是不争的事实。(注:当时七天alexa为六万多,现在已经飙升到两万多,可能也和alexa排名算法调整有关)

去年我第一次用七天酒店时,其实是被它的低价诱惑的。新会员可以有一次77元入住的机会,这在别的酒店没见到过。而且就算不参与这个活动,157元的价格,还是要比那些如家、锦江之星之类的低不少。但那时在线使用的体验很不好,07年10月我一次取消订单的行为,退款到了08年1月底我放假回到家才到。那次也是因为这个我才在blog发牢骚

虽然那时使用体验不好,但是能感觉每个分店和总部的联络紧密,后端已经很完善。等待退款的过程也目睹了七天的改版,被强调的“七天会”、“我的房间”这些东西,让人有错觉以为七天是个Web2.0网站。改版后虽然我的Firefox还不能正常登录,但比起锦江之星用Firefox都不能查询房间的囧,七天已经好太多。

别的连锁酒店都是网上只管订房,但七天把订房、交流、投诉都搬到了线上,这个策略是和其创始人郑南雁的计算机专业背景分不开的。从这点看的话,Alexa排名高一点也可以理解。而在线下的控制上好到让人感觉不出分店之间的区别,我不了解别的连锁,但对这家已经足够满意了。

今天又看到7天和口碑网战略合作,实在是生猛啊。七天能后来居上,绝不是偶然。它低价的活动,线上的拓展,以及对渠道的控制都是非常出色的。如今的时代,挑战者往往能跑得比在位者更快,等挑战者老了,又有新的挑战者冒出来。Google用这种方式抢走了微软的风光,如今facebook又在一点点蚕食Google的血肉。

每天都是分叉路

昨晚就把Blog成功搬迁到国内的服务器上了,不过给子宁搬家的过程颇为痛苦。说来奇怪,同样地导出,同样地导入,我的blog一切正常,子宁的blog却全是乱码。使出浑身解数,还是没弄好,最后只好使用WordPress内置的“导出”,然后把内容全部导入到一个新安装的WordPress上,算是没有乱码了,但一些额外的信息(比如给文章加的Tag)就没了。

过程痛苦了点,但是用上了崭新的WordPress2.5,还是觉得很爽。之后看了一下blog的负载情况,生成一个页面要查询40+次数据库,实在有点心疼俺的宝贝服务器。想使用缓存,但安装Wp-Cache又出了问题,后来只好用了一个Cos-html-cache,其实就是生成html,虽然丑陋了点,但效果很不错。

接到家里的电话,心情舒畅很多。以后就不喊累了,好好做手头的事。