ドキュメントルートについて
ドキュメントルートとは WEBサイトのトップディレクトリの事を指しますが、 BaserCMS は、CakePHP というフレームワーク(WEBサイトの枠組み)をベースに開発されているため、CakePHP と同じディレクトリ構造となり、WEBサーバーのドキュメントルートに全てのファイルを設置した場合、ブラウザで参照する事ができるドキュメントルート(WEBルートと呼びます)は、/app/webroot/ となるようになっています。
何故、こういうややこしい仕組みになっているかという理由は、一定のセキュリティを保持する為です。
ブラウザからアクセスできる場所にプログラムファイルや、テンプレートファイルを設置した場合、任意にプログラムが実行され、悪用されてしまう可能性があります。 (ただ、ブラウザからプログラムにアクセスする為には、当然ながらそのプログラムのURLを知る必要があり、CakePHPでは直接実行できてしまうプログラムも限られていますので、無名のサイトで実際に悪用される可能性はそこまで高くはないと思います)
CakePHPは、WEBサーバーの設定に関わらず、強制的に /app/webroot/ をWEBルートにする仕組みとなっている為、ブラウザからプログラムファイルにアクセスする事ができず一定のセキュリティを保てるようになっています。
従って、静的 HTML ファイルや、CSS ファイル、Javascript ファイル、画像ファイルなどは、/app/webroot/をドキュメントルートとして配置していく必要があります。
(例)http://localhost/img/main_image.gif として画像ファイルを参照したい場合
main_image.gif の設置場所は、/app/webroot/img/main_image.gif となります。
もちろん、app、baser、cake などのプログラムファイルをドキュメントルートの一つ上の階層に設置する事が一番望ましく、/app/webroot をドキュメントルートとして WEBサーバーをセットアップする方法が一番なのですが、レンタルサーバー等では、ドキュメントルートのフォルダ名が決まっていたり、ドキュメントルートより上の階層にはファイルが置けなかったりと制限がある場合が多いので、ドキュメントルートに全てファイルを配置する事が一番手軽な方法になると思います。
ドキュメントルートに通常どおり、htmlファイルなどを配置したい場合
ドキュメントルートに BaserCMS の全てのファイルを設置すると、管理するファイルの階層が深くなり分かりにくいという場合は、次の方法で、ドキュメントルートを通常どおりのドキュメントルートとして扱う事ができます。
ファイルをWEB サーバーにアップロードする前に作業をしましょう。
- /app ディレクトリから、 webroot ディレクトリを抜き出し別の場所に移動させます。
-
webroot ディレクトリ内に、app、baser、cake の3つのディレクトリを配置します。
構成変更後のディレクトリ構成は以下となります。webroot/ - app/ - baser/ - cake/ - css/ - img/ - js/ - themed/ - htaccess.txt(もともと webroot にあったもの) - index.php(もともと webroot にあったもの) - css.php - webroot の中身を WEBサーバーのドキュメントルートに全てアップロードします。
すると、構成変更があった事を BaserCMSが認識し、通常どおりインストールでき、動作するようになります。
セキュリティ上の問題がどうしても気になる場合は、.htaccess などで、ブラウザからプログラムフォルダにアクセスできないようにすれば大丈夫です。
具体的には、app / baser / cake の3つのフォルダに次の文を記述した.htaccessを記述します。
deny from all

















