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。


しかしまぁ、こぅ、サーバーまわりの設定方法を晒すということは
自分の無知を晒すということでもあり、
クラッカーの格好のターゲットになるわけですよね。あ〜こわいこわい><