我继承了在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
的网址添加前缀?
如果您需要更多信息并提前致谢,请告诉我。
答案 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"