2015-12-09 36 views
1

我迷路了,我試過了關於這個問題的一切,並且找不到解決方案。 我有在django 1.8/python 3.3.5/centos 7/apache上的應用程序。這裏是默認的sqlite數據庫。 Everytihng在django的web服務器上工作正常,但在Apache上發生錯誤「嘗試寫入只讀數據庫」失敗。 我照着這個文檔https://code.djangoproject.com/wiki/NewbieMistakes#DjangosaysUnabletoOpenDatabaseFilewhenusingSQLite3 DB文件來完成所有的檢查,它的根文件夾具有寫權限和「阿帕奇阿帕奇」用戶擁有者,但它仍然是同樣的錯誤:Django/Apache錯誤「試圖寫一個只讀數據庫」

OperationalError at /logout/ 
attempt to write a readonly database 
Request Method: GET 
Request URL: http://app.server.corp/logout/ 
Django Version: 1.8 
Exception Type: OperationalError 
Exception Value:  
attempt to write a readonly database 
Exception Location: /usr/local/lib/python3.3/site-   packages/django/db/backends/sqlite3/base.py in execute, line 318 
Python Executable: /usr/local/bin/python3.3/ 
+0

這可能是SELinux安全上下文的問題嗎?過去我也有類似的問題。 – masnun

+0

你完全正確!這是SELinux中的問題,在關閉應用程序啓動後正常工作 –

+0

我添加了評論的答案。 – masnun

回答

3

其因有「企圖寫只讀數據庫」 所以對我幫助了以下的外殼:

chmod 755 db.sqlite3 

所以我們只是更改權限DB文件。換句話說服務器無法寫入文件。

+1

德米特里,謝謝你的回答!啓用S​​ELinux時出現問題。正如我之前讀過的,使用chmod 777並不那麼安全,更好的方式是使用755權限與Apache用戶作爲此文件的所有者。 –

+0

如果我的回答是有效的,請加上:) –

相關問題