SQLiteでINSERTできないエラーが発生
SQLiteでINSERT文を発行するも「Warning: SQLite3::query(): Unable to execute statement: attempt to write a readonly database in」みたいなエラーが発生していた。
どうも読み込み専用になっており、書き込みができないみたいな内容っぽい。ちなみにcronでまわしていたプログラムで1発目の巡回では正常に動作していた。
また、該当のsqliteファイルのパーミッションを777にしても改善されず。フォルダごと777にするのは怖いし、どうしようかと思ってSSHから入って確認してみるとsqliteのユーザがrootになっていた。
取り急ぎ、
chown apache:apache /hoge/fuga/test.sqlite
という形でsqliteファイルのユーザとグループをapacheに変更する事で直った。
cronを回す際にroot権限で実行させており、その際にsqliteファイルがrootユーザで作られて、それをapacheユーザでは読み込めないようになっていたのかな。
ユーザとかグループとかイマイチ理解できていないので、この辺ちゃんと勉強しておかないと痛い目にあいそうでちょっと怖い。
関連記事
-
-
PHPとSQLiteでi-mobileのデータをグラフ化
i-mobileでクリック保証のアフィリエイトだけど数値が並んでいるだけでグラフ ...
-
-
PHPとSQLiteで簡易BBSの作成
PHPとSQLiteの練習で簡易掲示板を作ったのでメモ。 &nbs ...
-
-
SQLite3でデータをランダムに抽出したい
SQlite3でデータをランダムで抽出したいケースがあった。MySQLと同様RA ...
-
-
SQLiteとは何なのか
逆アクセスランキングのところで初めてSQLiteというファイルを見たんですけど、 ...
-
-
sqliteでphpmyadminみたいに使えるSQLiteManagerの導入
SQLiteのデータベースファイルの中身を見たくてphpmyadminみたいなソ ...
-
-
SQLiteを使って感じたメリットとデメリット
SQLiteを用いたツールをいくつか作って感じたメリットとデメリットをメモ。 & ...
-
-
SQLiteでNULL値の検索
SQLiteにてNULL値のもののみを検索したかったけど分からなかったので調べた ...
-
-
PHP5.5からSQLite3を使用する際のよく使う構文
PHPからSQLiteを使う際に必ず使うであろう基本的な構文のメモ。PDOは使っ ...