この記事は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