xreaでCakePHPを使う

Sandboxを開くにあたって、このBlogで利用しているxreaにCakePHPを設置しました。
作業メモ。

http://sandbox.massat.jp でアクセスされるURLで、CakePHPを動作させることにしました。
xreaでは、公開ディレクトリ内に作成したFQDNのディレクトリ内でサブドメインを運用します。
なのでサブドメイン sandbox.massat.jp は以下のディレクトリで運用します。

/virtual/massat/
	+ public_html/			← massat.jpの公開ディレクトリ
		+ sandbox.massat.jp/	← sandbox.massat.jp

ここにCakePHPのインストール。
参考にしたのは、こちらのマニュアルです。
以下引用。

Cake のディレクトリをディスクの別の場所に置きたい場合があります。共有サーバの制限のためであったり、幾つかの apps が同じ Cake ライブラリを共有するようにしたい時などです。

Cake アプリケーションには三つの主な部分があります。

  1. CakePHP のコアライブラリ - /cake
  2. アプリケーションコード(コントローラ、モデル、レイアウト、ビューなど。) -/app
  3. アプリケーションの webroot ファイル(画像、javascript, CSS など) -/app/webroot

それぞれのディレクトリは、ファイルシステムのどこにでも配置することができます。 webroot は、Webサーバからアクセスできるようにしておく必要があります。Cake に場所を伝えるようにする限り、必要ならば、 webroot フォルダを app フォルダから取り出すことも可能です

上記にもありますが、

  1. CakePHP のコアライブラリ
  2. アプリケーションコード

は、公開されている場所には置きたくないなぁと。
そこで sandbox.massat.jp では、以下のようなディレクトリ構成にしました。

/virtual/massat/				← レンタルスペースのルートディレクトリ
	+ cake/
		+ app/				← CakePHPのアプリケーションコード
		+ cake/				← CakePHPのコアライブラリ
	+ public_html/				← massat.jpの公開ディレクトリ
		+ sandbox.massat.jp/		← アプリケーションのwebrootファイル

配置をカスタマイズしたので、さらに作業が必要となります。

Cake のインストール時の設定で、/app/webroot/index.php で幾つか変更する必要があります。 編集するべき定数が三つあります。:ROOT、 APP_DIR、 CAKE_CORE_INCLUDE_PATH です。

  • ROOT には、あなたのapp フォルダを含むディレクトリのパスを設定してください。
  • APP_DIR には、あなたの app フォルダのパス名を設定してください。
  • CAKE_CORE_INCLUDE_PATH には、Cake ライブラリフォルダのパスを設定してください。

配置にあわせ、/virtual/massat/public_html/sandbox.massat.jp/index.php を編集しました。

	if (!defined('ROOT')) {
		 define('ROOT', DS.'virtual'.DS.'massat'.DS.'cake');
	}

	if (!defined('APP_DIR')) {
		 //define('APP_DIR', 'DIRECTORY NAME OF APPLICATION';
		 define('APP_DIR', 'app');
	}

	if (!defined('CAKE_CORE_INCLUDE_PATH')) {
		 define('CAKE_CORE_INCLUDE_PATH', ROOT);
	}

以上で、CakePHPは正常に動作しました。サブドメイン直下のURLなので、.htaccessの編集も必要ありませんでした。

Leave a Reply