個人用ツール

ver4/ドキュメントルートについて

提供: baserCMS公式ガイド

2016年9月18日 (日) 17:54時点における183.76.75.203 (トーク)による版

(差分) ←前の版 | 最新版 (差分) | 次の版→ (差分)
移動: 案内, 検索

[このコンテンツは内容調整中です]

まず、baserCMSを理解するために、ドキュメントルートについてご説明します。

ドキュメントルートとは Webサイトのトップディレクトリの事を指しますが、 baserCMS は、CakePHP というフレームワーク(Webサイトの枠組み)をベースに開発されているため、CakePHP と同じディレクトリ構造となり、Webサーバーのドキュメントルートに全てのファイルを設置した場合、ブラウザで参照する事ができるドキュメントルート(Webルートと呼びます)は、{baserCMSの設置フォルダ}/app/webroot/ となるようになっています。

何故、こういうややこしい仕組みになっているかという理由は、一定のセキュリティを保持する為です。
ブラウザからアクセスできる場所にプログラムファイルや、テンプレートファイルを設置した場合、任意にプログラムが実行され、悪用されてしまう可能性があります。 (ただ、ブラウザからプログラムにアクセスする為には、当然ながらそのプログラムのURLを知る必要があり、CakePHPでは直接実行できてしまうプログラムも限られていますので、無名のサイトで実際に悪用される可能性はそこまで高くはないと思います)

CakePHPは、Webサーバーの設定に関わらず、強制的に {baserCMSの設置フォルダ}/app/webroot/ をWebルートにする仕組みとなっている為、ブラウザからプログラムファイルにアクセスする事ができず一定のセキュリティを保てるようになっています。

従って、静的 HTML ファイルや、CSS ファイル、Javascript ファイル、画像ファイルなどは、{baserCMSの設置フォルダ}/app/webroot/をドキュメントルートとして配置します。

(例)http://{baserCMS設置URL}/img/main_image.gif として画像ファイルを参照したい場合

 main_image.gif の設置場所は、{baserCMSの設置フォルダ}/app/webroot/img/main_image.gif となります。

もちろん、app、Baser、Cake などのプログラムファイルをドキュメントルートの一つ上の階層に設置する事が一番望ましく、{baserCMSの設置フォルダ}/app/webroot/ をドキュメントルートとして Webサーバーをセットアップする方法が一番なのですが、レンタルサーバー等では、ドキュメントルートのフォルダ名が決まっていたり、ドキュメントルートより上の階層にはファイルが置けなかったりと制限がある場合が多いので、ドキュメントルートに全てファイルを配置する事が一番手軽な方法になると思います。

ドキュメントルートに通常どおり静的ファイルを配置する

ドキュメントルートに baserCMS の全てのファイルを設置すると、管理するファイルの階層が深くなり分かりにくいという場合は、次の方法で、ドキュメントルートを通常どおりのドキュメントルートとして扱う事ができます。

ファイルをWeb サーバーにアップロードする前に作業をしましょう。

  • {baserCMSの設置フォルダ}/app ディレクトリから、 webroot ディレクトリを抜き出し別の場所に移動させます。
  • webroot ディレクトリ内に、app、lib の2つのディレクトリを配置します。
    構成変更後のディレクトリ構成は以下となります。
webroot/ - app/
         - lib/
         - theme/
         - .htaccess(もともと webroot にあったもの)
         - index.php(もともと webroot にあったもの)
         - favicon.ico
  • webroot の中身を Webサーバーのドキュメントルートに全てアップロードします。

すると、構成変更があった事を baserCMSが認識し、通常どおりインストールでき、動作するようになります。

セキュリティ上の問題がどうしても気になる場合は、.htaccess などで、ブラウザからプログラムフォルダにアクセスできないようにすれば大丈夫です。
具体的には、app / Baser / Cake の3つのフォルダに次の文を記述した.htaccessを記述します。

deny from all