我使用Python 3.6,Apache和mod_wsgi成功配置了Ubuntu 16.04 LTS计算机。此文件夹具有安装了Flask的virtualenv。
$ ls -l /var/www/html/odb/
bin/
lib/
include/
config.wsgi
.wsgi文件非常简单,Apache conf也是如此:
$ cat /var/www/html/odb/config.wsgi
activate_this = '/home/ubuntu/odb/bin/activate_this.py'
with open(activate_this) as file_:
exec(file_.read(), dict(__file__=activate_this))
import sys
sys.path.insert(0, '/var/www/html/odb/')
def application(environ,start_response):
start_response('200 OK',[('Content-type','text/html')])
return ['Hello world']
$ cat /etc/apache2/sites-available/odb.conf
<VirtualHost *>
ServerName example.com
WSGIDaemonProcess webserver threads=5
WSGIScriptAlias / /var/www/html/odb/config.wsgi
<Directory /var/www/html/odb>
WSGIProcessGroup webserver
WSGIApplicationGroup %{GLOBAL}
Order deny,allow
Allow from all
</Directory>
</VirtualHost>
我可以访问虚拟网页。但是,当我修改.wsgi文件并添加Python Flask应用程序时,我得到一个HTTP500。以下是这些文件:
$ cat /var/www/html/odb/config.wsgi
activate_this = '/home/ubuntu/odb/bin/activate_this.py'
with open(activate_this) as file_:
exec(file_.read(), dict(__file__=activate_this))
import sys
sys.path.insert(0, '/var/www/html/odb/')
from webserver import app as application
$ cat /var/www/html/odb/webserver.py
from flask import Flask
app = Flask(__name__)
@app.route('/')
def hello_world():
return 'Hello, World!'
if __name__ == "__main__":
app.run(debug=True)
当我通过$ flask run --host=0.0.0.0
运行该应用程序时,可以通过互联网访问它,因此看来我在指向.wsgi文件中的Flask应用程序时做错了什么。我在做什么错了?
记录:$ cat /var/log/apache2/*log
在HTTP 500之后没有任何作用。我注意到/var/www/html/odb/webserver.pyc
在HTTP 500之后会显示帮助吗??
答案 0 :(得分:0)
相信您还可以通过在app.run()命令中启用“ use_reloader”来获取这些日志,
来自http://flask.pocoo.org/docs/0.12/api/
'如果您未设置“记住” Flask将使用通用错误页面抑制任何服务器错误,除非它处于> debug模式。这样,仅启用交互式调试器而无需重新加载代码,则必须使用debug = True和use_reloader = False调用run()。 >在没有处于调试模式的情况下将use_debugger设置为True不会捕获任何异常,因为不会捕获任何异常。'
(抱歉,无法发表评论,积分不足)