含有章节索引的中文 文章模板
::-- hoxide [2006-01-09 07:29:23]
Contents
1. PyBlosxom Multuser
简述
PyBlosxom的多用户模式
1.1. 软件环境
- Windows 2003
- Python 2.4.1
- Pyblosxom 1.3 dev
- Apache 2.0
- Mod_Python 3.2.5b
- WSGI ref
- mp_wsgi_handler
1.2. Apache 设置
<VirtualHost *:8066>
ServerAdmin hoxide@gmail.com
DocumentRoot "g:/pyblog"
ServerName blog.example.com
<Location /weblog>
AddDefaultCharset utf-8
PythonDebug off
SetHandler python-program
# set PythonPath to the folders containing the files.
PythonPath "['g:/pyblog/myblog']+sys.path"
PythonHandler mp_wsgi_handler::wsgi_handler
# This should be the same as the Location above
PythonOption ApplicationPath /weblog
PythonOption application wsgi_app::application
</Location>
</VirtualHost>
1.3. 修改 wsgi_app.py
1 # Pyblosxom imports
2 from Pyblosxom.pyblosxom import PyBlosxom
3 from Pyblosxom import tools
4 import pprint
5 from string import find as _find
6 from config import py as cfg
7 if cfg.has_key("codebase"):
8 sys.path.insert(0, cfg["codebase"])
9
10 ...
11
12 def application(env, start_response):
13
14 try: # regular application code here
15
16 # ensure that PATH_INFO exists. a few plugins break if this is missing.
17 if not 'PATH_INFO' in env:
18 env['PATH_INFO'] = ""
19
20 username = env['PATH_INFO'].split('/', 2)[1]
21 cfg['datadir'] = "g:/pyblog/%s/datadir"%username
22 cfg['comment_dir'] = "g:/pyblog/%s/comments"%username
23
24 #env['SCRIPT_NANE'] = "%s/%s"%(env['SCRIPT_NAME'], username)
25 env['PATH_INFO'] = env['PATH_INFO'][len(username)+1:]
26 cfg['base_url'] = '%s://%s%s/%s' % (env['wsgi.url_scheme'], env['HTTP_HOST'], env['SCRIPT_NAME'],username)
27
28 logger = tools.getLogger(logfilename)
29 logger.debug(pprint.pformat(
30 dict([(k , v) for k, v in env.items() if k in envdkeys])))
31
32
33 p = PyBlosxom(cfg, env)
34 p.run()
