Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/apache/8.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 将配置从mod_wsgi移动到脚本以进行调试_Python_Apache_Flask_Mod Wsgi - Fatal编程技术网

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

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

我继承了一个在apache服务器上使用mod_wsgi运行的Flask应用程序。它没有调试设置,所以我快速编写了一个调试脚本,使用
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"