WSGI脚本显示为文本,如何使其执行?

时间:2014-10-10 18:20:11

标签: python flask apache2 wsgi

我已经关注Flask网站上的instructions以使用WSGI进行部署。

我知道我的apache2服务器启用了wsgi

$ sudo apache2 -M
Loaded Modules:
 core_module (static)
 ...
 wsgi_module (shared)
 Syntax OK

但是当我转到站点地址时,它只显示了WSGI脚本的内容。我希望它能够执行脚本。

例如,modwsgi wiki有几个test scripts可以运行来检查你的配置,但当我修改我的wsgi脚本以包含其中一个测试脚本并将我的浏览器指向脚本时,我只是看到我浏览器中的源代码。

我看到apache2日志文件中中有一个错误。我做错了什么?

我的apache2配置看起来像这样

  1 <VirtualHost *>
  2     ServerName example.com
  3 
  4     WSGIDaemonProcess appname user=www-data group=www-data threads=5
  5     WSGIScriptAlias /appname /var/www/appname/appname.wsgi
  6 
  7     <Directory /var/www/appname>
  8         WSGIScriptReloading On
  9         WSGIProcessGroup appname
 10         WSGIApplicationGroup %{GLOBAL}
 11         Order deny,allow
 12         Allow from all
 13     </Directory>
 14 </VirtualHost>

/var/www/appname/appname.wsgi看起来像这样

import sys 

def application(environ, start_response):
    status = '200 OK'
    output = ''
    output += 'sys.version = %s\n' % repr(sys.version)
    output += 'sys.prefix = %s\n' % repr(sys.prefix)
    response_headers = [('Content-type', 'text/plain'),
                        ('Content-Length', str(len(output)))]
    start_response(status, response_headers)
    return [output]

0 个答案:

没有答案