Python 将配置从mod_wsgi移动到脚本以进行调试
我继承了一个在apache服务器上使用mod_wsgi运行的Flask应用程序。它没有调试设置,所以我快速编写了一个调试脚本,使用Python 将配置从mod_wsgi移动到脚本以进行调试,python,apache,flask,mod-wsgi,Python,Apache,Flask,Mod Wsgi,我继承了一个在apache服务器上使用mod_wsgi运行的Flask应用程序。它没有调试设置,所以我快速编写了一个调试脚本,使用werkzeug.run\u simple()方法运行该应用程序。我在将两个mod_wsgi选项移植到脚本时遇到问题 WSGIPythonPath似乎更简单。我不太清楚它是如何工作的,但这基本上是将指定的路径附加到PYTHONPATH环境变量吗 WSGIScriptAlias是问题更大的一个。在apache配置中,它是相当标准的: WSGIScriptAlias /m
werkzeug.run\u simple()
方法运行该应用程序。我在将两个mod_wsgi选项移植到脚本时遇到问题
WSGIPythonPath
似乎更简单。我不太清楚它是如何工作的,但这基本上是将指定的路径附加到PYTHONPATH环境变量吗
WSGIScriptAlias
是问题更大的一个。在apache配置中,它是相当标准的:
WSGIScriptAlias /myapp /path/to/myapp.wsgi
这会将URL中的app.route('/login')
转换为/myapp/login
。如何在wsgi脚本中以与WSGIScriptAlias
相同的方式为所有URL加上/myapp
如果您需要更多信息,请提前通知我。确实会将模块附加到系统路径。根据其文档,它相当于为每个条目运行(除非您运行mod_wsgi 1.x,在这种情况下,它相当于sys.path.append
):
这会将每个条目添加到sys.path
,还会扫描目录中的.pth
文件,并将找到的任何此类文件中的条目也添加到sys.path
(这意味着鸡蛋将按预期工作)
对于WSGIScriptAlias
,您只需在Flask应用程序的config
中设置:
app.config["APPLICATION_ROOT"] = "/myapp"
即使在mod_wsgi 1.X中,它也或多或少做了同样的事情。它是通过sys.path.append()完成的,但这意味着.pth文件不受尊重。@GrahamDumpleton-你完全正确-我已经更新了这个句子,让它更清楚。非常感谢。
app.config["APPLICATION_ROOT"] = "/myapp"