2014-12-25 17 views
1

當我使用的是瓶中apache和開/登錄(我在這裏使用的數據庫)我使用SQLite和Python庫sqlite3的瓶+ apache的內部服務器錯誤做出請求或數據庫

得到內部服務器錯誤 作爲數據庫IM時
DATABASE = '../../var/www/flask/database' 

連接數據庫功能:

def connect_db(): 
    return sqlite3.connect(DATABASE) 

登錄碼

@app.route('/login', methods=['POST']) 
def login(): 
    if request.cookies.get("name"): 
     return render_template("home.html",name=request.cookies.get('name')) 
    g.db = connect_db() 
    cur = g.db.execute('SELECT email, password, name, confirmed FROM users') 
    for row in cur.fetchall(): 
      if row[0] == request.form['email'] and row[1] == hashlib.sha224(request.form['password']).hexdigest() and row[3] == 1: 
       resp = make_response(redirect(host + "/home")) 
       resp.set_cookie("name",row[2]) 
       resp.set_cookie("password",row[1]) 
       return resp 
    return redirect(host) 

這裏是我的.wsgi代碼

import sys 

sys.path.insert(0, '/var/www/flask/') 

from routes import app as application 

,這裏是我的應用程序樹
瓶 - 靜 - (CSS JS等等)
- 模板 - (Jinja2的模板)
- database.db
- min.wsgi
- routes.py(APP)

這裏是routes.com.conf

NameVirtualHost *:80 

<VirtualHost *:80> 
    ServerName server.test 
    WSGIScriptAlias//var/www/flask/min.wsgi 
    <Directory /var/www/flask/> 
      Order allow,deny 
      Allow from all 
    </Directory> 
</VirtualHost> 
+0

什麼錯誤在Apache的錯誤日誌已登錄? –

+0

什麼是'DATABASE'設置爲? –

+0

*不*使用'DATABASE'的相對路徑; WSGI設置一個你可能沒有寫權限的工作目錄。 –

回答

2

對於您的DATABASE值,您需要使用絕對路徑

mod_wsgi模塊將設置不同的當前工作目錄爲您的應用程序,一個你最有可能沒有訪問。即使你沒有給該目錄的Apache進程的寫訪問,你不想落得別處改變看似無害的設置爲這一切停止工作了。

0

也許是因爲在login功能失常壓痕?這可能會導致一些非常其它錯誤日誌,但它是我的第一個猜想,當我看着錯誤的方式格式化(即使它只是錯誤的複製粘貼)代碼。

+0

這是錯誤的複製過去。通常使用燒瓶127.0.0.1:5000服務器運行正常。 –

相關問題