ドメインキング/DOMAIN KINGでSQLiteを使う場合の注意点

ドメインキングではSQLiteを利用できますが、下記のエラーが発生することがあります。問題はデータベースファイルとディレクトリのパーミッションにあるので、適切に変更することで対応できます。

Cronで実行する場合はエラーは発生しません。 例えばブラウザからスクリプトを実行する場合に、このエラーが発生します。SQLiteが動かないと思ったら管理ツールのエラーログを参考にしましょう。

PHP Fatal error: Uncaught exception 'PDOException' with message 'SQLSTATE[HY000]: General error: 8 attempt to write a readonly database' in /var/www/vhosts/……

データベースファイルのパーミッションが 644 になっています。これを 646 に変更します。

すると、今度は以下の様なエラーが発生することがあります。

PHP Fatal error: Uncaught exception 'PDOException' with message 'SQLSTATE[HY000]: General error: 14 unable to open database file' in /var/www/vhosts/……

この場合は、データベースファイルのあるディレクトリのパーミッションを変更します。

おそらく 755 になっているので 757 に変更します。

何をしているかというと、ファイルとディレクトリに対してその他のユーザーの書き込みを許可しています。

これで問題なくSQLiteが動作するはずです。パーミッションの変更はセキュリティに影響を与えるので慎重に操作しましょう。

関連記事

BLOG

UPDATE