SQLiteまわりの設定
世の中、適当に記事が書かれすぎているから困っちゃうわけで・・・
なんて言いつつも
俺も嘘を書いていないかビクビクしながら書いているわけです。(半分くらい嘘w
と言いつつ、出来るだけ調べてから書くようにはしていますけどねぇ〜
さて、本題。
Zend Frameworkを用いた開発でSQLiteを使うことにした僕ですが、
そこら辺の設定でまたもやハマった(′∀`;)
dbからの読み込みはうまくいっていたんだけど、
いざ書き込み!
という段階で敢えなく失敗。
原因の調査に乗り出した。
まず、大事なのはエラーメッセージ。
attempt to write a readonly database
なるほど、readonlyなとこに書き込もうとしても
そりゃ書けなくて当然だ!
で、まぁ権限を与えてやるわけだ。
そしたらエラーメッセージが変化。
unable to open database file
んあ?
わからん。Google先生、教えて(′∀`;)
どうやら親ディレクトリにも書き込み権限が必要らしい。
なるほど。
でまぁ、動いたわけですよ!
けどね、危険な香りがプンプンするわけ。
単純にアクセス権を変えただけじゃあーた、それ、セキュリティ的にマズくね?
と思って。
(実際にはよくわからんのだけど・・・)
ってことで、俺がとった方法:
http.confでapacheのユーザを確認。
User www
そのユーザにオーナーを変更。
> chown www:www db > chown www:www db/xxx.db
あと、ちゃーんとapacheの設定しないと
ブラウザでxxx.dbへのパスを直書きしたときにダウンロード出来ちゃうから注意!
というわけで、http.confにDeny from Allを記述。
これでたぶん、おk。
しかしまぁ、こぅ、サーバーまわりの設定方法を晒すということは
自分の無知を晒すということでもあり、
クラッカーの格好のターゲットになるわけですよね。あ〜こわいこわい><