lighttpd + web.py
Luo Weifeng 2011-7-22
本来这篇应该很早就写了这个的,可是不知道什么情况前几次尝试一直没有弄出来,搞得我头都大了。今天突然不知怎么的就出来了,于是就做一个记录,以备后边查看。
web.py 0.36
lighttpd 1.4.20
ubuntu 11.04
首先安装web.py 和lighttpd
#easy_install web.py
#apt-get install lighttpd
要配置fastcgi需要在lighttpd中启用
#lighttpd-enable-mod fastcgi
因为我们需要先尝试一下,所以就很多东西保持默认。
可配置的文件在/etc/lighttpd 目录下有:
lighttpd.conf
conf-available/10-fastcgi.conf
lighttpd.conf 里边定义了服务器的doc-root,默认是/var/www 本示例中不许要更改,默认的port是80。这个文件在这个小的测试中不需要更改。
然后,我们更改文件 conf-available/10-fastcgi.conf
#vim /etc/lighttpd/conf-available/10-fastcgi.conf
server.modules += ( "mod_fastcgi" ) server.modules += ( "mod_rewrite" ) fastcgi.server = ( "code.py" => ("localhost"=> ( "socket" => "/tmp/fastcgi.socket", "bin-path" => "/var/www/code.py", "max-procs" => 1, "bin-environment" => ( "REAL_SCRIPT_NAME" => "" ), "check-local" => "disable" ) ) ) url.rewrite-once = ( "^/favicon.ico$" => "/static/favicon.ico", "^/static/(.*)$" => "/static/$1", "^/index{1}$" => "/index.lighttpd.html", "^/(.*){1}$" => "/code.py/$1", )
然后我们在/var/www 目录下创建一个python脚本code.py
#vim /var/www/code.py
#!/usr/bin/env python # --*-- encoding: utf-8 --*-- import web urls = ( '/(.*)', 'hello' ) app = web.application(urls, globals()) class hello: def GET(self, name): if not name: name = 'World' return 'Hello, ' + name + '!' if __name__ == "__main__": app.run()
#chmod 755 /var/www/code.py
重新强制lighttpd重新加载配置:
#/etc/init.d/lighttpd force-reload
在浏览器查看:
#firefox http://localhost/code
有图有真相: