2016-11-20 93 views
1

我想在CentOS Apache2上使用WSGI運行一個Flask REST服務。 REST服務需要非常小的存儲空間。所以我決定使用SQLite和sqlite3 python包。當使用app.run()運行時,整個應用程序在我的本地系統和CentOS服務器上運行得非常好。但是當我使用WSGI在Apache上託管應用程序時,我得到了python sqlite3 OperationalError:試圖寫一個只讀數據庫

OperationalError: attempt to write a readonly database 

我已檢查文件的權限。使用chownchgrp將文件的用戶和組設置爲apache(服務器正在運行)。此外,該文件具有rwx權限。仍然我收到只讀數據庫錯誤。以下是我所得到通過對數據庫文件運行ls -al

-rwxrwxrwx. 1 apache apache 8192 Nov 19 01:39 dbfile.db 

我的Apache配置:

<VirtualHost *> 
ServerName wlc.host.com 

WSGIDaemonProcess wlcd 
WSGIScriptAlias//var/www/html/wlcd.wsgi 
RewriteEngine on 
RewriteCond %{HTTP:Authorization} ^(.*) 
RewriteRule .* - [e=HTTP_AUTHORIZATION:%1] 
<Directory /var/www/html/> 
    WSGIProcessGroup wlcd 
    WSGIApplicationGroup %{GLOBAL} 
    Order deny,allow 
    Allow from all 
    Require all granted 
</Directory> 

回答

0

除了改變數據庫文件的權限,你也需要更改權限用於承載數據庫文件的目錄。你可以試試下面的命令:

chmod 664 /path/to/your/directory/ 

您還可以更改該目錄的所有者如下:

chown apache:apache /path/to/your/directory/ 
+0

是否更改了目錄的奧爾到'阿帕奇:apache'? – ettanany

+0

我的燒瓶應用程序的python包具有權限'drw-rw-r - (帶有apache:apache),並且導入它的wsgi腳本也具有相同的權限。 –

+0

嘗試像'chown -R apache:apache/path/to/your/directory /'一樣添加'-R' – ettanany

相關問題