2012-01-03 61 views
2

我在Ubuntu 10.04上使用Flup 1.0.3 dev版本運行lighttpd 1.4.26。如何使用flup/python配置lighttpd bin-path參數

設置mod_fastcgi時,如果我在啓動lighttpd之前手動啓動fcgi(如www-data),我可以成功獲取lighttpd與本地套接字上的fcgi進程進行通信。

sudo su www-data 
/webapps/test/test.fcgi 

然後在另一個shell ...

sudo /etc/init.d/lighttpd/start 

當我嘗試使用的bin-path參數在fastcgi.server配置爲自動啓動這個過程,該過程纔開始,但不成功與流程溝通。

我已經分離信息中的lighttpd \ error.log中爲以下:

成功(手動啓動):

2012-01-03 11:56:52: (mod_fastcgi.c.3647) handling it in mod_fastcgi 
2012-01-03 11:56:52: (response.c.468) -- before doc_root 
2012-01-03 11:56:52: (response.c.469) Doc-Root  : /webapps/test 
2012-01-03 11:56:52: (response.c.470) Rel-Path  : /test.fcgi 
2012-01-03 11:56:52: (response.c.471) Path   : 
2012-01-03 11:56:52: (response.c.519) -- after doc_root 
2012-01-03 11:56:52: (response.c.520) Doc-Root  : /webapps/test 
2012-01-03 11:56:52: (response.c.521) Rel-Path  : /test.fcgi 
2012-01-03 11:56:52: (response.c.522) Path   : /webapps/test/test.fcgi 
2012-01-03 11:56:52: (configfile-glue.c.583) === start of condition block === 
2012-01-03 11:56:52: (configfile-glue.c.541) 1 (cached) result: false 
2012-01-03 11:56:52: (configfile-glue.c.583) === start of condition block === 
2012-01-03 11:56:52: (configfile-glue.c.541) 2 (cached) result: false 
2012-01-03 11:56:52: (response.c.539) -- logical -> physical 
2012-01-03 11:56:52: (response.c.540) Doc-Root  : /webapps/test 
2012-01-03 11:56:52: (response.c.541) Rel-Path  : /test.fcgi 
2012-01-03 11:56:52: (response.c.542) Path   : /webapps/test/test.fcgi 
2012-01-03 11:56:52: (mod_fastcgi.c.3071) got proc: pid: 0 socket: unix:/tmp/fcgi.sock load: 1 
2012-01-03 11:56:52: (connections.c.1773) state at exit: 7 handle-req 
2012-01-03 11:56:52: (mod_fastcgi.c.1492) released proc: pid: 0 socket: unix:/tmp/fcgi.sock load: 0 
2012-01-03 11:56:52: (connections.c.1367) state at start 7 handle-req 
2012-01-03 11:56:52: (connections.c.1431) state for fd 7 handle-req 
2012-01-03 11:56:52: (connections.c.1511) state for fd 7 resp-start 
2012-01-03 11:56:52: (response.c.128) Response-Header: 
HTTP/1.1 200 OK^M 
Content-Type: text/plain^M 
Content-Length: 13^M 
Date: Tue, 03 Jan 2012 19:56:52 GMT^M 
Server: lighttpd/1.4.26^M 

不成功:

2012-01-03 11:53:17: (mod_fastcgi.c.3647) handling it in mod_fastcgi 
2012-01-03 11:53:17: (response.c.468) -- before doc_root 
2012-01-03 11:53:17: (response.c.469) Doc-Root  : /webapps/test 
2012-01-03 11:53:17: (response.c.470) Rel-Path  : /test.fcgi 
2012-01-03 11:53:17: (response.c.471) Path   : 
2012-01-03 11:53:17: (response.c.519) -- after doc_root 
2012-01-03 11:53:17: (response.c.520) Doc-Root  : /webapps/test 
2012-01-03 11:53:17: (response.c.521) Rel-Path  : /test.fcgi 
2012-01-03 11:53:17: (response.c.522) Path   : /webapps/test/test.fcgi 
2012-01-03 11:53:17: (configfile-glue.c.583) === start of condition block === 
2012-01-03 11:53:17: (configfile-glue.c.541) 1 (cached) result: false 
2012-01-03 11:53:17: (configfile-glue.c.583) === start of condition block === 
2012-01-03 11:53:17: (configfile-glue.c.541) 2 (cached) result: false 
2012-01-03 11:53:17: (response.c.539) -- logical -> physical 
2012-01-03 11:53:17: (response.c.540) Doc-Root  : /webapps/test 
2012-01-03 11:53:17: (response.c.541) Rel-Path  : /test.fcgi 
2012-01-03 11:53:17: (response.c.542) Path   : /webapps/test/test.fcgi 
2012-01-03 11:53:17: (mod_fastcgi.c.3071) got proc: pid: 23117 socket: unix:/tmp/fcgi.sock-0 load: 1 
2012-01-03 11:53:17: (connections.c.1773) state at exit: 7 handle-req 
2012-01-03 11:53:27: (connections.c.1367) state at start 8 error 
2012-01-03 11:53:27: (connections.c.1746) shutdown for fd 8 
2012-01-03 11:53:27: (connections.c.1598) state for fd 8 close 
2012-01-03 11:53:27: (connections.c.1621) connection closed for fd 8 
2012-01-03 11:53:27: (connections.c.1587) state for fd 8 connect 
2012-01-03 11:53:27: (connections.c.1773) state at exit: 8 connect 

我的fastcgi配置:

server.modules += ("mod_fastcgi") 

## Start an FastCGI server 
fastcgi.debug = 1 

fastcgi.server = (".fcgi" => 
         ("localhost" => 
         (
         "socket" => "/tmp/fcgi.sock", 
         #"bin-path" => "/webapps/test/test.fcgi", 
         "max-procs" => 1, 
         "check-local" => "disable" 
             ) 
            ) 
           ) 

我正在做的唯一更改是取消註釋bin路徑行以直接引用fcgi文件。

的FCGI文件的內容只是一個簡單的Hello World:

#!/usr/bin/python2.6 

from flup.server.fcgi import WSGIServer 

def myapp(environ, start_response): 
    print 'got request: %s' % environ 
    start_response('200 OK', [('Content-Type', 'text/plain')]) 
    return ['Hello World!\n'] 

WSGIServer(myapp, bindAddress = '/tmp/fcgi.sock').run() 

我是新來的lighttpd,所以也許我失去了一些東西簡單。提前致謝!

+0

不要在你的帖子上簽名。請參閱http://stackoverflow.com/faq#signatures – Amy 2012-01-04 18:26:47

回答

1

我的安裝lighttpd和Django與flup我有同樣的問題。 像以前一樣通過設置套接字文件xxx.sock-0而不是xxx.sock的flup來解決它。 它也可能適用於你。

它看起來有點亂。我不是一個Linux大師,可能是別人會用解決方案迴應。