[ Content | Sidebar ]

Archives for 十二月, 2009

lighttpd下配置wp super cache重写备忘

发现有时候做非主流还真痛苦。。

现在用的这个vps是centos5 + 免费的kloxo主机管理系统。kloxo用的lighttpd,所以wp-super-cache的那套apache的rewrite规则就完蛋了~

于是搜lighttpd的重写规则,找到了一个老外的帖子, 需要启用mod_magnet(这个模块可以使用lua脚本进行更强大的url重写)

于是我把/etc/lighttpd/lighttpd.conf里mode_magnet的注释删掉

server.modules  = (
         "mod_rewrite",
         "mod_redirect",
         "mod_alias",
         "mod_access",
         "mod_magnet",
... ...

然后

/etc/init.d/lighttpd restart

我得到了下面的错误

mod_magnet plugin init failed

于是我继续google,发现需要重新编译下lighttpd,郁闷了。。
安装lua,发现有现成的包

wget http://packages.sw.be/lua/lua-devel-5.1.4-1.el5.rf.i386.rpm
rpm -i lua-devel-5.1.4-1.el5.rf.i386.rpm 
wget http://packages.sw.be/lua/lua-5.1.4-1.el5.rf.i386.rpm
rpm -i lua-5.1.4-1.el5.rf.i386.rpm
Copy Code 

yum安装编译工具和其他依赖

yum install gcc glib2-devel autoconf automake libtool  openssl-devel pcre-devel bzip2-devel gzip-devel zlib-devel
Copy Code 

编译安装lighttpd

wget http://download.lighttpd.net/lighttpd/releases-1.4.x/lighttpd-1.4.25.tar.gz
tar -zxvf lighttpd-1.4.25.tar.gz
cd lighttpd-1.4.25
./configure --with-pcre --with-lua --with-zlib --with-openssl --sbindir=/usr/sbin --sysconfdir=/etc/lighttpd
make
make install
Copy Code 

运行完毕,就可以把原有的lighttpd覆盖掉了,再次启用mod_magnet,成功~

然后就是配置这个重写的lua脚本,老外给的那个脚本是有问题的,所以自己又修改了下,大体的配置如下

$HTTP["host"] =~ "^(www.bluehua.org|bluehua.org)" {
#重写开始
server.error-handler-404   =  "/index.php"
magnet.attract-physical-path-to = ("/document-root/rewrite.lua")
#结束,就这就两句管用了
.......
}
Copy Code 

最后我改过的脚本下载:rewrite.lua

总算是好使了。。

pidgin msn群不显示昵称

让pidgin的MSN群消息显示昵称 | Zeal Blog – 泽欧里的网络日志.

sudo apt-get install msn-pecan
Copy Code 

ATI 显卡启用 Compiz 延迟的问题的解决方法

Live in code | ATI 显卡在 Ubuntu 9.04 | Ubuntu 9.10 上启用 Compiz 延迟的问题的解决方法.

额,直到我的t400切到集显才发现,ati独显开特效是这么的卡。。。

顺便再上两张非主流桌面截图

wordpress的插件机制用于产品js代码的解耦

由于半路出家,设计模式几乎没有接触,一直为产品代码的耦合头疼,前两天忽然想到,wordpress区区数行代码便实现了强大的插件接口,何不借鉴一下呢,于是便有了下面的假想代码(不了解wordpress插件机制的同学可以先了解一下):

/*
* 以一个相册浏览的产品为例
* 该应用可以实现无刷新的图片浏览,附加功能:新用户引导,图片评论,对图片处理的第三方应用,圈人
*/
//产品引导开始
addAction('photo_browser_init',function()
{
     guideManager.init();
});
addAction('photo_load_sucess',function(photo)
{
    guideManager.step(3, photo);
});
addAction('photo_change',function(photo)
{
    guideManager.step(4);
});
//产品引导结束
 
//管理员ui开始
addAction('photo_browser_init',function()
{
    if ( !currentUser.isAdmin ) return;
    ......
});
//管理员ui结束
 
//相册圈人开始
addAction('photo_browser_init', function()
{
    photo_tag.init();
});
addAction('photo_load|photo_change', function(photo)
{
    photo_tag.update(photo);
});
//相册圈人结束
 
//相片app
addAction('photo_browser_init',function(photo)
{
    photo_apps.init(photo);
});
addAction('photo_load|photo_change',function(photo)
{
    photo_apps.update(photo);
});
//相片app结束
 
//相片评论开始
addAction('photo_browser_init',function(photo)
{
    photo_comment.init(photo);
});
addAction('photo_load|photo_change',function(photo)
{
    photo_comment.update(photo);
});
//相片评论结束
 
//相片浏览核心功能开始
var photo_browser = {...};
photo_browser.init();
//相片浏览核心功能结束
Copy Code 

其实跟自定义事件有点类似,但是比自定义事件更强大:

  • 自定义依赖于对象,对脚本的加载顺序会有要求,而wordpress里的addFilter和addAction可以完美解决这个缺点。
  • filter可以实现数据过滤,而自定义事件不能

经过解耦之后的产品更方便多人协作开发,代码块清晰,有效避免svn冲突,还有种种其他好处。。

仅仅是个想法,未经实践,实践ing~

第一次参加d2

额,没有想像中收获多,多少说一下感受:

  • 金同学讲得模板语言,很有新意的架构,但是不适合俺们站的情况。
  • 甄同学讲得silverlight qq,漂过,本人对flash了解不多,对silverlight更没有信心。
  • 张克军讲《从YUI2到YUI3看前端的演变》,没细听。
  • 小明同学讲《前端安全概览及防范》,比较入门,对不太了解这方面的同学会有帮助。
  • 秦歌最后分享《前端性能优化与自动化》,很赞,优化方面讲得很全面,但是对于一些大站来说应该都已经注意到了。

嘉宾们讲的都很赞,但是合口味的不多,唉,明年d2一定要在北京开啊,来回火车累个半死