web.py 0.23 on xrea.com

environment

  • Python 2.3.4
    • デコレータ 使えねえとかモジュールの配置が違うとか
  • web.py 0.23
  • flup 1.0
  • Cheetah 2.0.1

.htaccess

  • .py の CGI 設定
  • URL のハンドル
  • HTTP_AUTHORIZATION を環境変数に追加
AddHandler cgi-script .py
#AddHandler cgi-script-debug .py

RewriteEngine on
RewriteBase /hoge/
RewriteCond %{HTTP:Authorization} ^(.*)
RewriteRule .* - [e=HTTP_AUTHORIZATION:%1]
RewriteRule .* index.py

index.py

  • shebang を設定
  • 改行コードは LF
  • CGI として動くように mod
  • テンプレートで組み込み変数すら使うなと怒るので調教
#!/usr/bin/python
import __builtin__
import os
import web

web.template.global_globals.update(__builtin__.__dict__)
web.template.global_globals['web'] = web

env = os.environ
if 'SERVER_SOFTWARE' in env and 'GATEWAY_INTERFACE' in env:

    def runwsgi(func):
        dirname = os.path.dirname(env['SCRIPT_NAME'])
        env['SCRIPT_NAME'] = dirname
        env['PATH_INFO'] = env['REQUEST_URI'][len(dirname):]

        import flup.server.cgi as flups
        return flups.WSGIServer(func).run()

    web.wsgi.runwsgi = runwsgi