webpy を mod_python で動かしてみる。
Django を使ってやろうと思っていたのですが、どうも
思うように動いてくれない・・・
ということで、web.pyに浮気してみました。
http://webpy.org/
ググってみると、
「python の web サーバでデバッグ起動」
や
「cgiで起動」
は、見かけるのですが
「mod_python で起動」
がなかなか見つからない。
ということで、webpyのインストールから mod_python での
起動を試してみました。
まずはwebpyが使うブツをインストール
apt-get install python-cheetah python-mysqldb python-flup
※python-flupはいらないかも
mod_python インストール
apt-get install libapache2-mod-python2.4
wsgiref インストール
チュートリアルだと、svnからダウンロードになってましたが、
うまくいかなかったので、tarをブラウザからダウンロードしました。
http://svn.eby-sarna.com/wsgiref/wsgiref/にアクセスして、Download tarball
/usr/lib/python2.4/site-packages
にダウンロードしたtarballを解凍
解凍したフォルダに移動して、modpython_gateway.pyをダウンロード
cd /usr/lib/python2.4/site-packages/wsgiref
wget -O modpython_gateway.py http://projects.amor.org/misc/browser/modpython_gateway.py?format=raw
とりあえず動きを見たかったので、/var/www/webpy を作って、
.htaccessを作成
AddHandler python-program .py
PythonHandler wsgiref.modpython_gateway::handler
PythonOption wsgi.application code::main
code.py はこんな感じ
import web
urls = (
'/', 'index',
'/faq', 'faq'
)
main = web.wsgifunc(web.webpyfunc(urls,globals()))
class index:
def GET(self):
web.header("Content-Type", "text/html; charset=utf-8")
print "hello, world!"
class faq:
def GET(self):
web.header("Content-Type", "text/html; charset=utf-8")
print "module faq was called!"
if __name__ == '__main__':
web.run(urls, globals())
http://exsample.com/webpy/code.py/
で、hello, world!
http://exsample.com/webpy/code.py/faq
で、module faq was called!
が表示されるはず。
※簡単そうに書いてますが、相当苦労しました・・・
参考
http://webpy.org/install
http://rewind.s53.xrea.com/diary/2006/01/08/out-it/
http://d.hatena.ne.jp/tokuhirom/20060225/1140867631
もどる