以下とかでcomposerを使用したCakePHPのインストール方法が紹介されている。
ComposerでCekePHPをインストール¶
CakePHP 2.xをComposerでインストールする
ただ、一つ気に入らない点がある。
ApacheのDocumentRootをapp/webrootに指定しなければならないことだ。
apache側の設定を変えるのは環境依存要因を増やすことになるので嫌だ。
なので、対策を考えた。
プロジェクトのルートディレクトリ(composer.jsonが配置されているディレクトリ)に以下の2ファイルを追加することだ。
これらは、普通に(Composerを使わずに)CakePHPをインストールした場合に、プロジェクトのルートディレクトリに入っているものを使う。ただ、.htaccessはそのままでよいが、index.phpは38行目のみ修正が必要である。
.htaccess
RewriteEngine on RewriteRule ^$ app/webroot/ [L] RewriteRule (.*) app/webroot/$1 [L]
index.php
<?php /** * Requests collector. * * This file collects requests if: * - no mod_rewrite is available or .htaccess files are not supported * - requires App.baseUrl to be uncommented in app/Config/core.php * - app/webroot is not set as a document root. * * CakePHP(tm) : Rapid Development Framework (http://cakephp.org) * Copyright (c) Cake Software Foundation, Inc. (http://cakefoundation.org) * * Licensed under The MIT License * For full copyright and license information, please see the LICENSE.txt * Redistributions of files must retain the above copyright notice. * * @copyright Copyright (c) Cake Software Foundation, Inc. (http://cakefoundation.org) * @link http://cakephp.org CakePHP(tm) Project * @since CakePHP(tm) v 0.2.9 * @license http://www.opensource.org/licenses/mit-license.php MIT License */ /** * Get CakePHP's root directory */ define('APP_DIR', 'app'); define('DS', DIRECTORY_SEPARATOR); define('ROOT', dirname(__FILE__)); define('WEBROOT_DIR', 'webroot'); define('WWW_ROOT', ROOT . DS . APP_DIR . DS . WEBROOT_DIR . DS); /** * This only needs to be changed if the "cake" directory is located * outside of the distributed structure. * Full path to the directory containing "cake". Do not add trailing directory separator */ if (!defined('CAKE_CORE_INCLUDE_PATH')) { define('CAKE_CORE_INCLUDE_PATH', ROOT . DS . 'Vendor/cakephp/cakephp/lib'); } require APP_DIR . DS . WEBROOT_DIR . DS . 'index.php';
0 件のコメント:
コメントを投稿