我正在Elastic Bean Stalk上构建一个烧瓶应用程序。在部署之后我得到500内部服务器错误。当我检查日志时,我发现有错误。
Traceback (most recent call last):
File "/opt/python/current/app/application.py", line 32, in <module>
application.run(debug=True, port=server_port, host='0.0.0.0')
File "/opt/python/run/venv/lib/python2.7/site-packages/flask/app.py", line 739, in run
run_simple(host, port, self, **options)
File "/opt/python/run/venv/lib/python2.7/site-packages/werkzeug/serving.py", line 617, in run_simple
test_socket.bind((hostname, port))
File "/usr/lib64/python2.7/socket.py", line 224, in meth
return getattr(self._sock,name)(*args)
error: [Errno 13] Permission denied
* Running on http://0.0.0.0:80/ (Press CTRL+C to quit)
mod_wsgi (pid=6577): Target WSGI script '/opt/python/current/app/application.py' cannot be loaded as Python module.
mod_wsgi (pid=6577): Exception occurred processing WSGI script '/opt/python/current/app/application.py'.
application.py文件如下
from flask import Flask
application = Flask(__name__)
application.debug = True
# Application routes defined here
@application.route('/index')
def index():
return "Hello World!"
# Run the application
application.run(debug=True, host='0.0.0.0')
我尝试了很多。我不知道发生了什么。在阅读其他stackoverflow问题后,我发现这是由于没有root权限引起的。如何在弹性bean stalk中以root权限运行我的WSGI脚本。
答案 0 :(得分:2)
使用:
# Run the application
if __name__ == '__main__':
application.run(debug=True, host='0.0.0.0')
在mod_wsgi下运行时,不应该进行application.run()
调用。仅在从命令行运行该脚本时才适用。那&#39;如果&#39;声明将确保它不会在mod_wsgi下调用。