将配置从mod_wsgi移动到脚本以进行调试

时间:2013-04-02 23:56:35

标签: python apache flask mod-wsgi

我继承了在apache服务器上使用mod_wsgi运行的Flask应用程序。它没有调试设置,因此我使用werkzeug.run_simple()方法编写了一个快速调试脚本来运行应用程序。我在将两个mod_wsgi选项移植到脚本时遇到了问题。

WSGIPythonPath似乎更简单。我不太确定它是如何工作的,但这是否基本上将指定路径附加到PYTHONPATH环境变量?

WSGIScriptAlias是更有问题的。在apache配置中它非常标准:

WSGIScriptAlias /myapp /path/to/myapp.wsgi

这会在网址中将app.route('/login')变为/myapp/login。如何以与/myapp相同的方式在wsgi脚本中为所有带WSGIScriptAlias的网址添加前缀?

如果您需要更多信息并提前致谢,请告诉我。

1 个答案:

答案 0 :(得分:1)

WSGIPythonPath确实将模块附加到系统路径。根据它的文档,它相当于为每个条目运行site.addsitedir(除非你运行的是mod_wsgi 1.x,在这种情况下它相当于sys.path.append):

import site

for p in list_of_paths:
    site.addsitedir(p)

这会将每个条目添加到sys.path ,它还会扫描目录中的.pth个文件,并将其找到的任何此类文件中的条目添加到sys.path好吧(这意味着鸡蛋将按预期工作)。

对于WSGIScriptAlias,您只需在Flask应用config中设置configuration variable APPLICATION_ROOT

app.config["APPLICATION_ROOT"] = "/myapp"