質問: ### 前提 FreeBSDをWebGUIで設定できる「NAS4Free」というサーバOS(?)を使い始めました。 そこで、SQLiteを利用しようとしているのですが、DBファイルのダウンロード拒否ができません。 現在サーバをいじりながら勉強中なので、専門的な知識や用語はあまりありません。 ### 質問 以前、「【SQLite3】dbファイルのセキュリティ」でご質問させていただいたものと似ているのですが、 どうもこのFreeBSDというサーバは.htaccessが使えないらしいので、 いろいろ調べてみたところnginxで設定できるよと書いてあるサイト様を発見しました。 →[nginx] nginx で特定の ip をアクセス制限する方法 [FreeBSD] しかし、当方先日よりこのFreeBSDというサーバを知ったためnginxが何なのか分かりません。(.htaccessに似た何か?) 更には、さくらのレンタルサーバはFreeBSDをOSとして利用しているとのことですが、.htaccessを設置することが可能です。 【質問1】 .htaccessを利用できるようにはできないのでしょうか。 【質問2】 dbファイルのダウンロードアクセスの拒否の方法を教えて下さい。 よろしくお願いいたします。 ### フォルダの配置状況 ``` --[mnt] └[public_html] └[ファイル&フォルダ] └[DBフォルダ] └[hoge.db] ``` で配置しています。
回答: この `[DBフォルダ]` は、`[mnt]`フォルダの直下に置いているのですか? それとも、`[public_html]` フォルダですか? ダウンロードできてしまうということなので、ひょっとして、`[public_html]`かと思ったのですが...。 その中に置いたものは全て公開されてしまうので、絶対置かないようにしてください。一応 `.htaccess` のようなもので、アクセス制限をかけられますが、間違って `.htaccess` を消してしまったり、内容を書きかえてしまったりすると、また見えるようになるので危険です。 `.htaccess` などでアクセス制限をかけるのではなく、最初から公開されないフォルダ(`[public_html]`の外側)にDBを移動してください。 追記: FreeNASのことを少し調べてみました。FreeNASは元々はファイル共有をするためのものですが、ウェブサーバーを動かしたいというニーズを持った人も多く、最近のバージョンでは、NASのウェブベースの管理画面から、Apacheウェブサーバー(httpd)を設定して動かすことができるようです。 なので、思うにこれは、 ``` --[mnt] └[public_html] └[ファイル&フォルダ] └[DBフォルダ] └[hoge.db] ``` 最初にFreeNASを設定した時に、マウントポイントとして public_htmlフォルダを作成。次に、Apache httpdのドキュメントルートとして、public_htmlフォルダを設定。すると、DBの置き場所がなくなってしまったので、public_htmlフォルダに入れた、ということでしょうか? つまりこんな感じです。 ``` mnt └── public-html <= NASのマウントポイント、Apacheドキュメントルート ├── db │ └── hoge.db <= .htaccessで隠したい ├── images └── index.html ``` まあ、違ってたら、この先は無視してもらってかまわないのですが。 もしこうなっているのなら、最初に戻って、マウントポイントの作りなおしと、Apache httpdのドキュメントルートの設定しなおしをしたほうがいいです。 例えばこんな感じ。 ``` mnt └── www <= NASのマウントポイント ├── db │ └── hoge.db └── public-html <= Apacheドキュメントルート ├── images └── index.html ``` あと、質問にFreeNASのバージョンを追記してもらえると、回答しやすくなると思いました。