WordPressユーザーのbaserCMS覚え書き


baserCMSで「WordPressアドレス」と「サイトアドレス」のような切り分けをするには

baserCMSの管理画面には設定項目がない

私がWordPressをウェブサーバに置くときはたいてい、ウェブサーバのドキュメントルートでなく、いったんディレクトリ foo を作りその中にWordPressのファイル一式を展開するようにしています。ドキュメントルートが雑多になるのが気分的にイヤなのと、静的なファイルの追加が必要になった場合などに設定が何かとラクだからです。

こうしたことができるのも、WordPressの[設定]-[一般]に「WordPressアドレス」「サイトアドレス」という2つの設定項目があるからこそ、なんですね。

で、baserCMSでもこうした設定ができないかなーと思い、調べてみました。結論からいうと

  • 管理画面には設定項目がない
  • 技術的には可能だけど、作業はかなり煩雑(個人的感想)

ということでした。

/app/webroot/ がドキュメントルートになる

baserCMSは、ウェブアプリのフレームワーク『CakePHP』で開発されています。そのため、baserCMSの挙動はCakePHPの仕様によるところが大きくなります。CakePHPはウェブサーバの設定にかかわらず /app/webroot/ をドキュメントルートとして動作するため、baserCMSでも同様の動きをすることになります。

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

従って、静的 HTML ファイルや、CSS ファイル、Javascript ファイル、画像ファイルなどは、/app/webroot/をドキュメントルートとして配置していく必要があります。

ドキュメントルートについて | baser CMS - 国産オープンソース!フリー(無料)で『コーポレートサイトにちょうどいいCMS』

なるほど、CakePHPのインストールディレクトリにある index.php を見るとこんな記述がありますね。


/**
 *  Get Cake's root directory
 */
define('APP_DIR', 'app');
define('DS', DIRECTORY_SEPARATOR);
define('ROOT', dirname($fileName));
define('WEBROOT_DIR', 'webroot');
define('WWW_ROOT', ROOT . DS . APP_DIR . DS . WEBROOT_DIR . DS);

ディレクトリ構成を変えることでWordPressに似た方法をとることは可能(でも面倒かも)

とはいえ /app/webroot/ 内に他のディレクトリや静的ファイルを展開するのも、階層が深くなってちょっと……という考えもありそう。そういう声もふまえてか、前述のドキュメント「ドキュメントルートについて」には『ドキュメントルートに通常どおり、htmlファイルなどを配置したい場合』として、その方法が書かれています。

技術的には可能ですが、個人的にはちょっと面倒な印象です……なんとなくトラブルの元にもなりそう……

baserCMSがCakePHPをベースに動作するCMSである以上、基本的にはその枠内で設定した方がよさそうですね。