##language:zh -- limodou [<>] <> = 使用weblog-add.py来增加新贴 = ''原来以为PyBlosxom不能增加新贴,结果发现了weblog-add.py。但运行地报错,说没有授权,就改了一下,以为有错。结果在这个链接[[http://roughingit.subtlehints.net/pyblosxom/weblogs/tools/tutorial/|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 '%(user)s' % {"user": user}中的邮箱信息改成你的邮箱即可 == 认证设置 == 在前面我们已经把用户认证的口令加进去了。下一步,我们要使用.htaccess方式来提供Basic认证处理。这个文件我们将放在你的Blog起始目录下。为了使其生效,我们要首先修改httpd.conf来使其生效。 {{{ 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 Require user limodou }}} 这样当访问weblog-add.cgi你会看到弹出一个输入用户名,口令的对话框。 上面改完后,重启Apache就可以了。httpd -k restart 或httpd -k start == 讨论 == * 现在weblog-add.py的功能还不是很强,不过发一般的贴子足够了。还有就是现在好象保存的应该是HTML格式的,一般的文本回车都不起作用。回头改一下config.py中的parser试试。 -- limodou * 又加了一个插件,行了。 linebreaks.py -- limodou