2016-11-20 1 views
1

Я пытаюсь запустить службу REST ROCK на CentOS Apache2 с использованием WSGI. Для службы REST требуется очень маленькое хранилище. Поэтому я решил использовать SQLite с пакетом python sqlite3. Все приложение отлично работало на моей локальной системе и на сервере CentOS при работе с app.run(). Но когда я использовал WSGI для размещения приложения на Apache, я получаюpython sqlite3 OperationalError: попытка написать базу данных только для чтения

OperationalError: attempt to write a readonly database 

Я проверил права доступа к файлу. Пользователь и группа файлов установлены в apache (под которым работает сервер) с использованием chown и chgrp. Кроме того, файл имеет разрешение rwx. Тем не менее, я получаю ошибку базы данных только для чтения. Ниже то, что я получаю, запустив ls -al на файл БД:

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

My Apache Configuration:

<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

Вы изменили OWER к текущему каталогу на 'апач: apache'? – ettanany

+0

Пакет python моего флеш-приложения имеет разрешения 'drw-rw-r -' (с apache: apache), а скрипт wsgi, который импортирует его, также имеет то же самое. –

+0

Попробуйте добавить '-R' как' chown -R apache: apache/path/to/your/directory/' – ettanany