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()
我们给code.py 一个权限:
#chmod 755 /var/www/code.py
重新强制lighttpd重新加载配置:
#/etc/init.d/lighttpd force-reload
在浏览器查看:
#firefox http://localhost/code
有图有真相: