2016-11-20 9 views
1

WSGIを使用してCentOS Apache2でFlask RESTサービスを実行しようとしています。 RESTサービスには、非常に小さなストレージが必要です。だから私はsqlite3 pythonパッケージでSQLiteを使用することにしました。 app.run()を使用して実行した場合、アプリケーション全体はローカルシステムとCentOSサーバーで正常に動作しました。しかし、WSGIを使用してApache上でアプリケーションをホストすると、私は取得していますpython sqlite3 OperationalError:読み取り専用データベースを作成しようとしました

OperationalError: attempt to write a readonly database 

私はファイルの権限をチェックしました。ファイルのユーザーとグループは、chownchgrpを使用してapache(サーバーが実行されているサーバー)に設定されています。また、ファイルにはrwxの許可があります。それでも私は読み取り専用のデータベースエラーを取得しています。以下の私は、DBファイルに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/ 
次のようにあなたは、ディレクトリの所有者を変更することができ

:apache`:

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

は、ディレクトリのowerに 'のapacheを変更しましたか? – ettanany

+0

私のフラスコのアプリケーションのpythonパッケージには 'drw-rw-r - '(apache:apache)のアクセス権があり、これをインポートするwsgiスクリプトも同じです。 –

+0

'chown -R apache:apache/path/to/your/directory/'のように' -R'を付けてみてください。 – ettanany

関連する問題