-- hd [2004-08-05 22:38:15]

1. PyBlosxom

一直在考虑使用一个Blog系统加强woodpecker的社区,最终选定了pyblosxom。pyblosxom到现在还没有加入到FreeBSD的ports中来,我将它的安装记录下来,希望对将来使用它的人有一个参考。

这里我们讲述的安装模式为多人使用的模式,因为我们需要为woodpecker社区中的参与者们每一个人开放一个空间。对于一个用户的安装方法会更简单,请参考pyblosxom的INSTALL。

本文所说明的为pyblosxom 1.0版本的安装信息,其它版本主参考相应版本的INSTALL文件。

1.1. 使用需求

  • 一个Web服务器(可以使用FreeBSD支持的非常好的Apache)
  • python 2.1以上的版本
  • 一个文本编译器(pyblosxom现在还需要使用一个文本编辑器来加入文章)

1.2. 系统准备

1.2.1. 安装apache

现在我开始尝试使用apache2.0了,所以我装的是apache 2.0:

cd /usr/ports/www/apache2
make install clean

1.2.2. python

FreeBSD的python一直紧跟潮流,所以就用它了:

cd /usr/ports/lang/python
make install clean

1.2.3. 运行需要py-xml的支持

FreeBSD还是为我们准备好了最新的py-xml:

cd /usr/ports/textproc/py-xml
make install clean

1.3. 系统安装

  1. 解开pyblosxom的压缩包到一个临时目录
  2. 将用户su为root
  3. 在临目录中运行“python setup.py install”以安装pyblosxom代码库到python中。
  4. 将config.py和pyblosxom.cgi文件复制到cgi-bin目录下
  5. 修改config.py中相关的设置

# 你的blog的名字
py['blog_title'] = "Woodpacker Blog"
# 你的blog在RSS中的说明
py['blog_description'] = "Woodpacker Blog"
# 作者的名字和邮件地址
py['blog_author'] = "HD hdcola at gmail.com"
# blog的默认语言
py['blog_language'] = "zh"
# blog的字符编码
py['blog_encoding'] = "utf-8"
# blog存储数据的目录
py['datadir'] = "/data1/www/blog.woodpecker/blog"
# blog系统存储日志的目录
py['logdir'] = "/data1/www/blog.woodpecker/log"
  1. 运行一下pyblosxom.cgi,看一下输出,是否有错误
  2. 在操作系统下使用文字编辑器建立一个文本文件到py['datadir']指向的目录下。我建立的文件名叫hello.txt内容为:

%<-------------------------------------------
First Post 
<p> 
   This is the first post in my blog. 
</p> 
%<-------------------------------------------

这用使用浏览器访问cgi-bin/pyblosxom.cgi试试。就可以看到你有一个blog在系统中出现了。

1.4. 安装插件

1.4.1. Comments

  1. 复制contrib/plugins/comments/plugins/comments.py到你的plugins目录下。在config.py文件中的load_plugins属性中加入comments

  2. 如果你需要安装trackbacks(可选),将contrib/plugins/comments/plugins/trackback.py}}复制到你的plugins目录下。在{{{config.py文件中的load_plugins属性中加入trackbacks

  3. 如果你需要安装pingbacks(可选),复制contrib/plugins/comments/plugins/xmlrpc_pingback.py到你的plugins目录下。你一定要确认你已经定义了py["base_url"]属性。xmlrpc_pingback.py需要使用到Mark Pilgrin的rssfinder(http://diveintomark.org/projects/feed_finder/feedfinder.py)和rssparser(freebsd ports里在textproc/py-feedparser中)模块(它们都可以在http://diveintomark.org/projects/找到源头)。不要忘记在{{config.py}}}文件中的load_plugins属性中加入xmlrpc_pingback

  4. 如果需要支持CommentAPI时,复制contrib/plugins/comments/plugins/commentAPI.py到你的plugins目录下。....这里没有写完,没搞明白这个CommentAPI怎么玩 :(

  5. 所有的评论都存储在一个与数据目录并行的目录之下,comments系统允许你定义评论存储的目录以及存储文件的后娺,你必须建立好相应的目录并且给pyblosxom CGI脚本可写的权限。

设置py['comment_dir']到你的评论文件存储路径下。 设置py['comment_ext']}}为你的文件扩展名,默认为{{{cmt

  1. comment系统能在新的comments/trackbacks/pingbacks提交时通知你指定的邮箱,如果你需要打开这个特性,在config.py中加入以下设置:

   1    py['comment_smtp_server'] = "your.host.name.org"       # your SMTP server
   2    py['comment_smtp_from']   = "[email protected]"   # the address sending the notification
   3    py['comment_smtp_to']     = "[email protected]"   # the address receiving the notification
  1. {{{contrib/plugins/comments/flavours}}}复制附加的文件到数据文件目录中。

comment-story模板用于格式化一个条目的评论。 comment模板用于格式化comment/trackback/pingback。 comment-form模板用于加入一个新的评论。

  1. 编辑comment-story, comment, 和 comment-form模板,以下为相应的变量的设置:

storycomment-story中:

  • $num_comments包含