Chinaunix

标题: Python如何部署为fastcgi? [打印本页]

作者: liuzix    时间: 2009-11-22 18:43
标题: Python如何部署为fastcgi?
我想在Ubuntu上用lighttpd部署Python,关于fastcgi的配置,网上都没有系统的介绍。好像和配置PHP不一样,好像是把自己写的一个单独的python程序文件拿出来做进程?具体谁能讲解一下。谢谢
作者: smallfish_xy    时间: 2009-11-23 08:32
多手动搜索下把。

http://cleverdevil.org/computing ... i-wsgi-and-lighttpd

如果是django,webpy或者其他,相应文档都有发布的介绍滴哦
作者: leo_ss_pku_cu    时间: 2009-11-23 13:29
请参考这篇:
Pinax(django) + fastcgi + nginx无错配置
http://www.himysql.com/?p=98
作者: chrisyan    时间: 2009-11-23 16:36
我是用的flup做的fcgi,用着还可以,大概如下
lighttpd配置:

server.modules += ("mod_fastcgi")
fastcgi.server=( "/fcgi/something" =>
(
    "some" => (
    "bin-path" => "/usr/bin/python /opt/some/server/some_fcgi.py parameter",
    "socket" => "/tmp/fcgi.sock",
    "max-procs" => 1, #这个可以调,想要lighttpd启动是开几个进程就写几个
    "check-local" => "disable",
    )
),

)

脚本:
我就挑必须的写了哦
import httplib
import threading  #这个可以有,也可以没有,在一个进程中flup会把多个请求发过来,以多线程方式运行,如果有全局变量或不可重入函数,请加锁
global_lock = threading.Lock()
.
.

def blablabla():
  #加锁小心代码段异常,把自己锁死,还是要加上finally比较保险
  try:
     global_lock.acquire()
      somecode...
  finally:
     global_lock.release()
.
.

#code 422不常用,httplib里的responses里竟然没有
def http_response(code):  
    if code == 422:
        return '422 Unprocessable Entity'
    return '%s %s' % (code,httplib.responses[code])

def main_app(environ, start_response): #主调用函数,environ是一个字典,包含了所有http传过来的东西,你自己打印下就知道了
                                                     #start_response是一个函数,把response code 和header给它
    http_cmd = http_response(httplib.OK)
    http_header = [('Content-Type', 'text/plain')]
    http_content = ''"
    #处理主体,根据情况修改 http_cmd,http_header,http_content
    .
    .
    start_response(http_cmd,http_header)
    return [http_content]

if __name__ == '__main__':
    #这里想干点啥都行
    .
    .
    #启动主循环
    from flup.server.fcgi import WSGIServer
    WSGIServer(main_app).run()


基本上就这样
作者: liuzix    时间: 2009-11-23 21:37
没用框架,就自己写的PYTHON程序。
作者: crskykkf    时间: 2009-11-25 01:48
留个记号..想弄个 python的服务器玩玩.
作者: nonultimate    时间: 2009-11-26 19:04
标题: 回复 #6 crskykkf 的帖子
GAE提供python 2.5开发环境,而且免费
http://code.google.com/appengine/
作者: crskykkf    时间: 2009-11-26 21:36
原帖由 nonultimate 于 2009-11-26 19:04 发表
GAE提供python 2.5开发环境,而且免费
http://code.google.com/appengine/


我早就申请了.
但不太爽..

自己有100M的光纤民用宽带.  垃圾电脑一台..所以..
作者: bohemia    时间: 2009-11-27 08:37
原帖由 crskykkf 于 2009-11-26 21:36 发表


我早就申请了.
但不太爽..

自己有100M的光纤民用宽带.  垃圾电脑一台..所以..


还是自己搞比较好。呵呵。




欢迎光临 Chinaunix (http://bbs.chinaunix.net/) Powered by Discuz! X3.2