【当ブログではアフィリエイト広告を利用しています】

[PHP] SQLiteで読込はできるが書き込めない時(Warning: SQLite3::exec(): unable to open database file)

attention この記事は2年以上前の投稿になります。
記載された情報が古くなっている可能性がございますので十分ご注意ください。

プログラムのサーバー移行時にハマった問題です。
元々動作していたプログラムなのでパスやパーミッションを正しく変更すれば良いわけですが。
思わぬところで落とし穴が。。。
 
単純なSQLiteのテーブルを表示・追加・削除をウェブ上で行うプログラムだったのですが、すんなり表示できたところで追加・削除ができないことが判明。
エラーログを確認すると「Warning: SQLite3::exec(): unable to open database file」と出力されていましたが、当然データベースファイル(.db)はパーミッションが正しく設定されていました。(移行前のサーバーと同じことを確認済み)
 
調査したところ、データベースファイルを配置しているディレクトリーにも書き込み権限が必要でした。
データベースファイルだけのパーミッション設定だけではダメだというのは「unable to open database file」のメッセージだけで察するのはさすがに無理ですね・・・
 
ディレクトリーのパーミッション設定を開放するときは、セキュリティを気にして解除してくださいね。
 
 
◎参考
>SQLite3::exec
>SQLite が unable to open database file で困った
 
 
◎環境情報(問題発生した環境)
・PHP 5.5 + 標準機能のSQLiteモジュール
・Apache 2.2.15

ご意見・ご感想をお待ちしております。

いただいた情報は一般公開されません。(入力いただいたメールアドレスにてご返信させていただきます)
また、* が付いている欄は必須項目となりますので、必ずご記入をお願いします。

内容に問題なければ、下記の「コメントを送信する」ボタンを押してください。