404尝试在Raspberry Pi上使用WSGI部署基本Flask应用程序时

时间:2016-07-12 19:09:49

标签: python apache flask raspberry-pi mod-wsgi

我一直在关注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 wsgia2ensite 001-flasktest.confservice apache2 reload。每个命令都以root用户身份执行。

我现在去http://localhost/flasktest时出现404错误。 http://localhost给了我默认的Apache页面,显然Apache正常运行。据我所知,Apache根本不会生成任何错误消息。

我真的不知道出了什么问题:是什么让404出现?有人可以帮帮我吗?提前谢谢!

2 个答案:

答案 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错误日志,看看到底发生了什么。