CakePHPでは、
・ 本来公開する必要のないCakePHPフレームワークのコアライブラリソース
・ 作成したアプリケーションのプログラムソース
を外部から直接アクセスできないようにすることが可能になっています。
この方法で、僕の追い求める理想の完全売買システムを構築したいので、XREA+(Plus) レンタルサーバーに配置した時のメモです。
運用時のディレクトリ構成
以下のようなディレクトリ構成にしたいと考えました。
公開URL:http://[hogesubdomain].hiro25.com/
※サブドメインでの運用をします。
■ XREA+(Plus)でのディレクトリ構成
/virtual/[XREAのID]/ ← XREAでのルートディレクトリ cake1.1/ app/ ← CakePHPのアプリケーションコード cake/ ← CakePHPのコアライブラリ public_html/ ← hiro25.comの公開ディレクトリ [hogesubdomain].hiro25.com/ ← アプリケーションのwebrootファイル
通常のCakePHPの配置方法をカスタマイズするので、設定ファイルを変更する必要があります。
設定ファイルの編集
Cake のインストール時の設定で、/app/webroot/index.php で幾つか変更する必要があります。 編集するべき定数が三つあります。:ROOT、 APP_DIR、 CAKE_CORE_INCLUDE_PATH です。
・ ROOT には、あなたのapp フォルダを含むディレクトリのパスを設定してください。
・ APP_DIR には、あなたの app フォルダのパス名を設定してください。
・ CAKE_CORE_INCLUDE_PATH には、Cake ライブラリフォルダのパスを設定してください。
/virtual/[XREAのID]/public_html/[hogesubdomain].hiro25.com/index.php を以下のように編集しました。(抜粋)
if (!defined('ROOT')) { define('ROOT', DS. 'virtual' . DS . '[XREAのID]' . DS . 'cake1.1'); } 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); }
この編集により、うまく動作することが確認できました。
サブドメイン直下のURLなので、.htaccessの編集も必要ありませんでした。
参考資料
・CakePHPガイドブック P297 公開サーバへの設置
・CakePHPのセットアップ
・massat.jp – xreaでCakePHPを使う