2 回答
TA貢獻(xiàn)1790條經(jīng)驗(yàn) 獲得超9個(gè)贊
您向我們展示了$ groups ubuntu和的輸出$ groups www-data。它表示ubuntu具有組寫入權(quán)限,例如附加到664組中的文件www-data。
但是您的網(wǎng)絡(luò)服務(wù)器是以用戶身份www-data而不是作為用戶運(yùn)行的ubuntu,所以這無關(guān)緊要。重要的是想要www-data屬于該ubuntu組以便寫入當(dāng)前數(shù)據(jù)庫文件,但它不在該組中。你可以編輯/etc/groups來解決這個(gè)問題。
或者,您可能希望$ sudo chgrp www-data data.db(或 chown)授予 apache Web 用戶對該文件的訪問權(quán)限。
TA貢獻(xiàn)1862條經(jīng)驗(yàn) 獲得超6個(gè)贊
終于自己弄清楚是什么問題:這個(gè)問題背后的錯(cuò)誤是apache用戶與ubuntu不同。所以當(dāng) apache 運(yùn)行我的 web 應(yīng)用程序時(shí),它是從不同的工作目錄運(yùn)行的,當(dāng)然找不到數(shù)據(jù)庫文件。
因此,我首先在代碼中更改了數(shù)據(jù)庫 .db 文件的路徑以更正絕對路徑,如下所示:
engine = create_engine('sqlite:////home/ubuntu/flaskproject/data.db',connect_args={'check_same_thread': False})
然后將項(xiàng)目文件夾和數(shù)據(jù)庫文件的所有者更改為 www-data(apache 用戶):
sudo chown www-data .
sudo chown www-data data.db
并確保所有者對項(xiàng)目文件夾和 data.db 文件具有讀寫權(quán)限(在我的情況下已經(jīng)滿足)
解決權(quán)限問題的另一種解決方案是將用戶 www-data 添加到 ubuntu 組,因此我們不需要更改項(xiàng)目文件夾和 data.db 文件的所有者(但要確保 ubuntu 組中的用戶具有讀寫權(quán)限)
usermod -a -G ubuntu www-data
所以總的來說,只要數(shù)據(jù)庫的路徑是正確的(建議絕對路徑)并且用戶 www-data 具有項(xiàng)目文件夾和數(shù)據(jù)庫文件的權(quán)限,一切都應(yīng)該正常。
添加回答
舉報(bào)
