使用Apache2运行mod-wsgi代码(.wsgi)

pro*_*eek 3 apache mod-wsgi

我通过如下设置apache服务器在apache2 / Mac OS X上使用mod_wsgi。

<Directory /Library/WebServer/Documents/wsgi/scripts>
  Order allow,deny
  Allow from all
</Directory>

<IfModule wsgi_module>
  WSGIScriptAlias /test /Library/WebServer/Documents/wsgi/scripts/test.wsgi
</IfModule>
Run Code Online (Sandbox Code Playgroud)

使用此配置,我可以使用以下命令调用test.wsgi http://.../test

现在,我需要通过如下调用来执行它。

http://.../wsgi/test.wsgi

我有以下代码。

<Directory /Library/WebServer/Documents/wsgi/scripts>
  Order allow,deny
  Allow from all
  AddHandler wsgi-script .wsgi
</Directory>

<IfModule wsgi_module>
  WSGIScriptAlias /test /Library/WebServer/Documents/wsgi/scripts/test.wsgi
  Alias /wsgi/ /Library/WebServer/Documents/wsgi/scripts/
</IfModule>
Run Code Online (Sandbox Code Playgroud)

我考虑过使用,Alias以便可以将wsgi脚本目录链接到/ wsgi /,并且我希望Addhandler可以处理wsgi文件,但是它不起作用。

我的apache2设置有什么问题?

解决了

<Directory /Library/WebServer/Documents/wsgi/scripts>
  Options ExecCGI Indexes
  AddHandler cgi-script .cgi
  AddHandler wsgi-script .wsgi

  Order allow,deny
  Allow from all
</Directory>

Alias /wsgi/ /Library/WebServer/Documents/wsgi/scripts/
Run Code Online (Sandbox Code Playgroud)

Gra*_*ton 5

不要将AddHandler与WSGIScriptAlias一起使用,而需要将AddHandler与Alias指令一起使用。您还需要为目录设置ExecCGI选项。看到:

http://code.google.com/p/modwsgi/wiki/ConfigurationGuidelines