Published On: 1970-01-01|Last Updated: 1970-01-01|Categories: Python|

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

参考

BASIC認証メモ

CGI環境でweb.pyを動かす

関連