2015-10-06 52 views
0

当我试图运行WSGI Python脚本从这个tutorial测试的FastCGI:WSGI Python的适配器测试的FastCGI:错误启动WSGI服务器

#!/usr/bin/env python 
# -*- coding: UTF-8 -*- 

from cgi import escape 
import sys, os 
from flup.server.fcgi import WSGIServer 

def app(environ, start_response): 
    start_response('200 OK', [('Content-Type', 'text/html')]) 

    yield '<h1>FastCGI Environment</h1>' 
    yield '<table>' 
    for k, v in sorted(environ.items()): 
     yield '<tr><th>%s</th><td>%s</td></tr>' % (escape(k), escape(v)) 
    yield '</table>' 

WSGIServer(app).run() 

它导致以下,从错误日志它不是根据返回的应用程序状态0,不清楚发生了什么问题。可能是因为我错过了一些东西。

Mod_python error: "PythonHandler mod_python.publisher" 

Traceback (most recent call last): 

    File "/usr/local/lib64/python2.7/site-packages/mod_python/apache.py", line 398, in HandlerDispatch 
    result = obj(req) 

    File "/usr/local/lib64/python2.7/site-packages/mod_python/publisher.py", line 213, in handler 
    module = page_cache[req] 

    File "/usr/local/lib64/python2.7/site-packages/mod_python/cache.py", line 89, in __getitem__ 
    return self._checkitem(name)[2] 

    File "/usr/local/lib64/python2.7/site-packages/mod_python/cache.py", line 131, in _checkitem 
    value = self.build(key, name, opened, entry) 

    File "/usr/local/lib64/python2.7/site-packages/mod_python/publisher.py", line 86, in build 
    return ModuleCache.build(self, key, req, opened, entry) 

    File "/usr/local/lib64/python2.7/site-packages/mod_python/cache.py", line 380, in build 
    exec(opened_as_str, module.__dict__) 

    File "<string>", line 21, in <module> 

    File "/usr/local/lib/python2.7/site-packages/flup/server/fcgi.py", line 112, in run 
    sock = self._setupSocket() 

    File "/usr/local/lib/python2.7/site-packages/flup/server/fcgi_base.py", line 997, in _setupSocket 
    req.run() 

    File "/usr/local/lib/python2.7/site-packages/flup/server/fcgi_base.py", line 572, in run 
    self._end(appStatus, protocolStatus) 

    File "/usr/local/lib/python2.7/site-packages/flup/server/fcgi_base.py", line 601, in _end 
    sys.exit(appStatus) 

SystemExit: 0 

暗示可能是它只在我通过Apache运行时才会发生。在命令行中,它工作正常。

回答

1

它看起来像你试图通过FCGI运行WSGI应用程序,但使用mod_python。如果您必须使用FCGI,则需要使用mod_fastcgi。但是,真的,你应该使用mod_wsgi而没有那个或flup。