Command disabled: index


̃Gg[͂ĂȃubN}[Nɒlj

CodeIgniter :: 最初に設定するであろう設定箇所のメモ



PHPフレームワーク「CodeIgniter」の最初に設定するであろう設定箇所のメモです。
複数のアプリケーションを構築する前提で、以下のように application ディレクトリと html ディレクトリ配下に <APP> というディレクトリを作成しています。

  • アプリケーションディレクトリ
application/<APP>
  • html ディレクトリ(img, css, js などの静的ファイルを配置するディレクトリ)
html/<APP>


定数:ENVIRONMENT の動的設定

  • 本番サーバー上では、以下のパスにフレームワーク一式を設置
/path/to/production/ci
  • 開発サーバー上では、以下のパスにフレームワーク一式を設置
/path/to/development/ci

上記の前提で、ディスパッチャーである index.php(html/<APP>/index.php) の先頭の方に、以下のコードを追加します。

if (strpos(__FILE__, '/path/to/development/ci') === 0) {
    define('ENVIRONMENT', 'development');
}
if (strpos(__FILE__, '/path/to/production/ci') === 0) {
    define('ENVIRONMENT', 'production');
}
defined('ENVIRONMENT') || exit("`ENVIRONMENT' is not defined\n");

本番サーバーでは、定数:ENVIRONMENT の値が production に、
開発サーバーでは、定数:ENVIRONMENT の値が development になります。
※ステージング環境などが必要な場合は、適宜追加します。

  • $application_folder の設定
    • 同ファイルの $application_folder の値も以下のように変更します
$application_folder = '../../ci/application/<APP>';


application/<APP>/config/database.php

  • development と production で、DB の設定を動的に変更します
switch (ENVIRONMENT) {
    case 'development':
        $db['default']['hostname'] = 'localhost';
        $db['default']['username'] = 'username';
        $db['default']['password'] = 'password';
        $db['default']['database'] = 'database_dev';
        $db['default']['db_debug'] = true;
        break;

    case 'production':
        $db['default']['hostname'] = 'localhost';
        $db['default']['username'] = 'username';
        $db['default']['password'] = 'password';
        $db['default']['database'] = 'database';
        $db['default']['db_debug'] = false;
        break;

    default :
}
// ↓コメントアウトする
//$db['default']['db_debug'] = FALSE;


application/<APP>/config/routes.php

  • デフォルトコントローラーの変更 welcome → index
    • welcome というのが、好みではないので
$route['default_controller'] = "welcome";
  ↓
$route['default_controller'] = "index";
  • ※ この設定変更は必須ではありません


application/<APP>/config/autoload.php

  • DBを使う場合
    • ⇒ 都度 load するのは手間なので autoload します
$autoload['libraries'] = array('database');


パーミッションの変更

% chmod 777 application/<APP>/cache
% chmod 777 application/<APP>/logs


以上です。
必要に応じて、今後も追加していく予定です。





programming/php/framework/codeigniter/init_config.txt