我一直在关注http://flask.pocoo.org/docs/0.11/deploying/mod_wsgi/上的说明,让我的Flask应用程序通过运行Raspbian的Raspberry Pi上的WSGI部署在Apache上,但无论我尝试什么,我都会在该位置出现404错误我指定了。我在我能找到的各种网页上使用了这些信息(尤其是http://www.ashokraja.me/post/Serving-a-Python-Flask-Web-Application-via-Apache-Webserver-in-Raspberry-Pi.aspx上的说明),但似乎没有任何结果。
以root身份登录,我创建了一个目录/var/www/flasktest
,其中我放了两个文件:
flasktest.py
,包含:
#!/usr/bin/python
from flask import Flask
app = Flask(__name__)
@app.route('/')
def hello_world():
return 'Hello World!'
if __name__ == '__main__':
app.run()
和flasktest.wsgi
包含:
#!/usr/bin/python
import sys
sys.path.insert(0, '/var/www/flasktest')
from flasktest import app as application
然后我对两个文件都做了chmod ugo+x
(不知道是否有必要)。
我还创建了包含
的/etc/apache2/sites-available/001-flasktest.conf
<VirtualHost *:80>
ServerName localhost
WSGIDaemonProcess flasktest threads=5
WSGIScriptAlias /flasktest/ /var/www/flasktest/flasktest.wsgi
<Directory /var/www/flask/flasktest>
WSGIProcessGroup flasktest
WSGIApplicationGroup %{GLOBAL}
Order deny,allow
Allow from all
</Directory>
</VirtualHost>
我执行了a2enmod wsgi
,a2ensite 001-flasktest.conf
和service apache2 reload
。每个命令都以root用户身份执行。
我现在去http://localhost/flasktest
时出现404错误。 http://localhost
给了我默认的Apache页面,显然Apache正常运行。据我所知,Apache根本不会生成任何错误消息。
我真的不知道出了什么问题:是什么让404出现?有人可以帮帮我吗?提前谢谢!
答案 0 :(得分:0)
仔细检查您的WSGIScriptAlias变量 - 应该是(according to the docs)
WSGIScriptAlias / /var/www/yourapplication/yourapplication.wsgi
你有
WSGIScriptAlias /yourapplicaiton/ /var/www/yourapplication/yourapplication.wsgi
正如Philip Tzou所提到的,你的Directory
路径也可能不正确。
此外,有时服务器名称localhost
会给您带来问题。请改用127.0.0.1:80
。
答案 1 :(得分:0)
您似乎意外地错误地通过了<Directory />
。请尝试将/etc/apache2/sites-available/001-flasktest.conf
更改为:
<Directory /var/www/flasktest>
...
</Directory>
另外,您可以查看apache错误日志,看看到底发生了什么。