-- limodou [2004-09-05 22:05:37]

1. 使用weblog-add.py来增加新贴

原来以为PyBlosxom不能增加新贴,结果发现了weblog-add.py。但运行地报错,说没有授权,就改了一下,以为有错。结果在这个链接Using weblog-add to add entries in your blosxom blog才发现,是我不会用,按照上面的方法做了如下测试成功。

1.1. 使用简介

weblog-add.py是专门用来给PyBlosxom增加新贴的程序。因为增加新贴本身是一个有危险的工作,因此,一般的Blog系统都需要进行用户认证后,进入管理界面才可以。但PyBlosxom作为一个Hacker的Blog,更多地是个人使用,因此这方面功能不强。weblog-add.py可以完成这一工作,简单,但同样也考虑了用户的认证。现在它采用的方式是Apache的Basic认证方式。但Basic的认证方式一个缺点是,密码本身不加密,因此可能有一定的危险性。不过,对于我们的Blog系统可能危险性不大,因为它只是一个应用的用户,是不可以直接通过Ftp,Telnet来控制主机的。因此我们不用太关心安全性的问题。(这一点可以讨论一下)

因此我们主要要做的是如何给我们的Blog增加用户认证的功能。

1.2. 增加认证用户

使用Apache提供的htpasswd程序,命令行为

htpasswd -c passwd文件名 用户名

如果已经存在口令文件,则-c可以不加。passwd文件名应该是放在Apache 用户不能直处理的位置,比如我是放在了:/etc/httpd/conf/blogpasswdfile

举例:

#htpasswd -c /etc/httpd/conf/blogpasswdfile limodou
New password: 
Re-type new password: 
Adding password for user limodou 

1.3. 放置weblog-add.py

  • 将weblog-add.py放在你的Blog系统的起始目录下,我的是/var/www/html/limodou。将后缀改为.cgi。因为我的Apache中只认为.cgi的是一个cgi程序。
  • 修改weblog-add.cgi文件。主要是修改:
    • blog_root='/var/www/html/limodou/entries' #这里是你的Blog的起始位置
    • user2link 函数中的 return '<a href="mailto:%(user)[email protected]">%(user)s</a>' % {"user": user}中的邮箱信息改成你的邮箱即可

1.4. 认证设置

在前面我们已经把用户认证的口令加进去了。下一步,我们要使用.htaccess方式来提供Basic认证处理。这个文件我们将放在你的Blog起始目录下。为了使其生效,我们要首先修改httpd.conf来使其生效。

<Directory "/var/www/html/*/">
    AllowOverride AuthConfig
    Options ExecCGI
...

上面AllowOverride放在Directory中,表示本目录及所有子目录都启用.htaccess(如果存在的话)。这样,我们后面要写的.htaccess将会生效。

接着,在你的Blog起始目录下(我的是/var/www/html/limodou)下生成.htaccess文件,内容为:

AuthType Basic 
AuthName "By Invitation Only" 
AuthUserFile /etc/httpd/conf/blogpasswdfile 
 
<Files weblog-add.cgi> 
Require user limodou 
</Files>

这样当访问weblog-add.cgi你会看到弹出一个输入用户名,口令的对话框。

上面改完后,重启Apache就可以了。httpd -k restart 或httpd -k start

1.5. 讨论

  • 现在weblog-add.py的功能还不是很强,不过发一般的贴子足够了。还有就是现在好象保存的应该是HTML格式的,一般的文本回车都不起作用。回头改一下config.py中的parser试试。 -- limodou
  • 又加了一个插件,行了。 linebreaks.py -- limodou