2016-07-12 38 views
0

我一直在按照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 wsgia2ensite 001-flasktest.confservice apache2 reload。每個命令都以root用戶身份執行。

當我現在去http://localhost/flasktest我得到一個404錯誤。 http://localhost給了我默認的Apache頁面,所以顯然Apache運行正常。據我所見,Apache根本不會產生任何錯誤信息。

我真的不知道出了什麼問題:是什麼讓404出現?有人可以幫助我嗎?提前致謝!

+0

您是否需要將'app.run()'放入您的WSGI文件中?我對WSGI或Apache並不熟悉,所以我在這裏沒有太多幫助,但這可能是一些嘗試。 – Samadi

+0

你不應該去只是本地主機,而不是去保存文件的絕對路徑?畢竟你的app.route被定義爲'/' – oat

+0

@davidism - 我看到問題被標記爲向Flask路由添加前綴的副本,但這不是OP所要求的。 – sytech

回答

0

仔細檢查你的WSGIScriptAlias可變那應該是(according to the docs

WSGIScriptAlias//var/www/yourapplication/yourapplication.wsgi 

儘管你有

WSGIScriptAlias /yourapplicaiton/ /var/www/yourapplication/yourapplication.wsgi 

菲利普Tzou還提到,你Directory路徑可能是不正確的,無論是。

此外,有時服務器名稱localhost可以給你的問題。改爲使用127.0.0.1:80

+0

解決方案原來是兩個建議的組合(雖然我不需要在127.0.0.1之後指定端口號),並且@PhilipTzou指出了我的錯誤。非常感謝! –

+0

真棒:)很高興聽到,高興地幫助。 – sytech

0

看起來你錯誤地通過了一個錯誤的路徑<Directory />。嘗試改變/etc/apache2/sites-available/001-flasktest.conf這樣:

<Directory /var/www/flasktest> 
... 
</Directory> 

您也可以看看Apache的錯誤日誌,看看到底發生了什麼。

+0

謝謝,這確實是問題的一部分。 –

相關問題