这两天试了下几个博客引擎,不是对wordpress有什么,主要是想再建个简单点的。
先是试了下几个国产的。typecho太久没更新了,估计项目已经半截入土了,而且我跑不起来,虽然能建立数据库,但是没法登录,说是密码错误。emblog倒是很正常,一看那个后台就给删了,搞得跟qq空间一样,太繁杂,花花绿绿的,不喜。
后来转向国外的。主要是chyrp和textpattern。chyrp确实很轻量级,但是不是很容易修改主题,它的模板采用的是twig格式的template,不如直接修改php文件方便。而textpattern我同样是没跑起来,具体原因忘了。
所以最后找到了habari。这个项目主页在http://habariproject.org/en/ 最新版本是0.8,去年年底发布的,不算太老,而且项目目前还处于活跃中的状态,暂时不用担心后续的更新。
安装很简单
git clone https://github.com/habari/habari.git habari
cd habari
//首次安装
git submodule update --init
//更新
git pull
git submodule update
设置和wordpress等各种php网站基本上是一样的,只需要一点修改。nginx的话在 location / 中添加
if (-f $request_filename) {
expires 30d;
break;
}
# send all non-existing file or directory requests to index.php
# GOTCHA: Make sure your rewrite rules are inside the location block. //以下语句必须写在 location / 中
if (!-e $request_filename) {
rewrite ^/(.*)$ /index.php?$1 last;
}
因为habari是所有请求都使用安装目录下的index.php ,然后再由 /index.php 根据请求的地址做出相应的动作。
Habari有几个特色。它的后台非常简洁,但是大量运用jquery,非常方便。比如要转到Dashboard,只需要按「Q」「D」两个键就能转过去,完全不需要动鼠标。但是简洁的代价是太简单了。编写新文章的时候居然必须自己使用html标签。比如要插入一个链接,老老实实的用<a href=""></a>吧。比较幸运的是插入图片不需要,上传图片以后habari会提供一个插入图片的选择,然后自动帮你把<img/>写好。当然,使用外部图片的时候还是自己动手丰衣足食吧。如果只是一般的写点文字的东西,这个简洁的后台真的是非常好用,完全没有distraction。
Habari也是使用插件的,官方有些插件,一些开发者同样开发了一些插件,比如说通过google docs等weblog api更新,通过email更新,添加google analytics代码,添加piwik代码之类的。但是除去这些插件,habari本身提供的功能还是比较弱的,毕竟他们的理念就是通过插件完成所有非必须的功能。不过比较无语的是habari连头像都不支持,不管是作者还是访客,都是不支持头像的。当然了,仍然是有插件可以提供头像的,包括gravatar和twitter的头像都有。虽然habari的插件数量上和wordpress完全没得比,但是平时可能用到的实用性的插件差不多都涵盖了。
安全性也是habari的一个特点。登录系统是不支持cookie的,在登录后一段时间没有动作就会session expire,要重新登录,更别说什么重启浏览器自动登录了。Once again,有插件能启用基于cookie登录的功能。Habari的评论都是wait for moderation,需要博主approve后才会显示出来。但同时也有spam checker的插件,并且是官方插件,安装时候就默认自动安装并启用了。这个插件会自动判断评论是不是spam然后自动标记,相当于帮博主mark as spam。不过这个插件可能有些bug,原本我启用后会导致评论无法发出,403 forbidden了,但是我升级php到5.4后又正常了,所以不太清楚是什么问题。
Habari的另一个特点是对Multisite的原生支持。只需要在habari的安装目录下的 /user 目录中建立 /sites 目录,然后在里面根据子站的url新建该网站自己的目录。比如子站的地址是 www.abc.com/habari ,那就建立一个 www.abc.com.habari 目录,而如果是https的,那就改为 443.www.abc.com.habari 。总之就是 port.url ,同时把所有 / 改为 . 就行了。然后在这个目录下放置该网站自己的config.php,然后打开网址就能有提示新建数据库了。而且这个网站能使用 /user/themes 和 /user/plugins 中各个子站共用的主题和插件,同时还能使用自己专有的主题和插件,也就是 www.abc.com.habari/themes 和 www.abc.com.habari/plugins 中的主题和插件。而且子站之间是完全独立的,包括域名。一个子站可以是www.abc.com,而另一个可以是efg.org/xyz,而不像是wordpress必须使用二级域名或者子目录的形式。即使要更改域名,也只需要把目录改名就行,habari会自动的判断正确的路径。