ubuntu lighttpd+webpy (fastcgi)配置方法

(编辑:jimmy 日期: 2024/12/23 浏览:2)

lighttpd 的配置脚本在 /etc/lighttpd/lighttpd.conf,采用默认值
缺省的server.document-root路径是 /var/www
具体实施步骤:
1) 首先实现一个 python 脚本
touch /var/www/hello.py
chmod 755 /var/www/hello.py
vim /var/www/hello.py
复制代码 代码如下:
#!/usr/bin/env python
import web
urls = (
'/hello', 'hello', '/hello/(.*)$', 'hello'
)
app = web.application(urls, globals())
class hello:
def GET(self, name=None):
if not name:
name = 'world'
return 'Hello, ' + name + '!'
if __name__ == "__main__":
app.run()

2) 配置 fastcgi
vim /etc/lighttpd/conf-available/10-fastcgi.conf
复制代码 代码如下:
server.modules += ( "mod_fastcgi" )
fastcgi.server = ("/hello" =>
((
"bin-path" => "/var/www/hello.py",
"socket" => "/tmp/hello.py.socket",
"max-procs" => 1,
"bin-environment" => (
"REAL_SCRIPT_NAME" => ""
),
"check-local" => "disable"
))
)

3) 启用 fastcgi
lighttpd-enable-mod fastcgi
4) 重启 lighttpd
/etc/init.d/lighttpd force-reload
5) 在浏览器中验证结果
http://localhost/hello 得到的结果是 Hello, world!
http://localhost/hello/sendltd 得到的结果是 Hello, sendltd!
6) 补充说明
这样配置静态页面和动态页面可以共存,不需要配置 mod_rewrite。
每次修改 python 脚本都要重启lighttpd。
可以在 10-fastcgi.conf 中 配置多个sever,但是socket不能相同 。
[l参考链接]
http://redmine.lighttpd.net/projects/lighttpd/wiki/Docs:ModFastCGI http://redmine.lighttpd.net/projects/lighttpd/wiki/Docs:ConfigurationOptions