-- limodou [2004-09-05 22:05:37]
Contents
使用weblog-add.py来增加新贴
原来以为PyBlosxom不能增加新贴,结果发现了weblog-add.py。但运行地报错,说没有授权,就改了一下,以为有错。结果在这个链接Using weblog-add to add entries in your blosxom blog才发现,是我不会用,按照上面的方法做了如下测试成功。
使用简介
weblog-add.py是专门用来给PyBlosxom增加新贴的程序。因为增加新贴本身是一个有危险的工作,因此,一般的Blog系统都需要进行用户认证后,进入管理界面才可以。但PyBlosxom作为一个Hacker的Blog,更多地是个人使用,因此这方面功能不强。weblog-add.py可以完成这一工作,简单,但同样也考虑了用户的认证。现在它采用的方式是Apache的Basic认证方式。但Basic的认证方式一个缺点是,密码本身不加密,因此可能有一定的危险性。不过,对于我们的Blog系统可能危险性不大,因为它只是一个应用的用户,是不可以直接通过Ftp,Telnet来控制主机的。因此我们不用太关心安全性的问题。(这一点可以讨论一下)
因此我们主要要做的是如何给我们的Blog增加用户认证的功能。
增加认证用户
使用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
放置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}中的邮箱信息改成你的邮箱即可
认证设置
在前面我们已经把用户认证的口令加进去了。下一步,我们要使用.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
讨论
- 现在weblog-add.py的功能还不是很强,不过发一般的贴子足够了。还有就是现在好象保存的应该是HTML格式的,一般的文本回车都不起作用。回头改一下config.py中的parser试试。 -- limodou
- 又加了一个插件,行了。 linebreaks.py -- limodou