CakePHP webroot以外を非公開ディレクトリに移動する

CakePHPは、webroot以外のディレクトリは、どこにでも配置できるみたいです。
(当然の事ですが、webrootはアクセスできるディレクトリに配置しないといけません。)
せっかく非公開ディレクトリを使用できるんですし、webroot以外は非公開ディレクトリに移動しちゃおうって事になりますよね。

さっそく移動させてみましょ。
公開ディレクトリを「/var/www/」
非公開ディレクトリを「/cgi-bin/」として、
「http://cakephp-test.yasigani-ni.com」でアクセスできるようにしたいと思います。

まずは、「webroot」内に配置されているディレクトリやファイルを公開ディレクトリ上に移動させます。

次に、「webroot」以外のディレクトリを非公開ディレクトリに移動。

最後に、webroot内に配置されていたindex.phpを編集します。
編集する項目は3つ、定数『ROOT』『APP_DIR』『CAKE_CORE_INCLUDE_PATH』です。

『ROOT』には、「app」や「cake」などのディレクトリを配置したディレクトリへのパス。
『APP_DIR』には、「app」ディレクトリの名前。(変更してなければそのままでオッケーです。)
『CAKE_CORE_INCLUDE_PATH』には、CakePHPのコアを配置したディレクトリへのパスを書きます。
今回の環境では、

/**
 * The full path to the directory which holds "app", WITHOUT a trailing DS.
 *
 */
if (!defined('ROOT')) {
    define('ROOT', DS.'cgi-bin');
}
/**
 * The actual directory name for the "app".
 *
 */
if (!defined('APP_DIR')) {
    define('APP_DIR', 'app');
}
/**
 * The absolute path to the "cake" directory, WITHOUT a trailing DS.
 *
 */
if (!defined('CAKE_CORE_INCLUDE_PATH')) {
    define('CAKE_CORE_INCLUDE_PATH', ROOT);
}

となります。

注意点としては、CakePHPのコアが『cake』ディレクトリ内にあることぐらいです。

たったこれだけの変更でいいなんて、すごい楽ですよね。