我一直在按照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的說明),但似乎沒有任何結果。404當試圖在Raspberry Pi上使用WSGI部署基本Flask應用程序時
以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出現?有人可以幫助我嗎?提前致謝!
您是否需要將'app.run()'放入您的WSGI文件中?我對WSGI或Apache並不熟悉,所以我在這裏沒有太多幫助,但這可能是一些嘗試。 – Samadi
你不應該去只是本地主機,而不是去保存文件的絕對路徑?畢竟你的app.route被定義爲'/' – oat
@davidism - 我看到問題被標記爲向Flask路由添加前綴的副本,但這不是OP所要求的。 – sytech