このエントリーをはてなブックマークに追加

更新日: 2016年2月25日

実行時間: 0.0075

config.php

 Webアプリケーションの基本的な設定や、Session・Cookie、ログ出力などの設定を行います。
WebサイトのURLやログ・Sessionタイムアウトなどの設定は、環境毎に異なる設定を行うことが ほとんどではないでしょうか。この設定ファイルは、 環境に合わせて3つの環境ディレクトリ配下に設置することになると思います。

$config['base_url']

    WebサイトのベースURLを設定します。
    この設定は「$this->config->base_url()」メソッドと「URLヘルパ」の「base_url()」関数で利用される以外、 他の動作に影響はありません。従って、これらのメソッドと関数を利用しなければ設定する必要はありません。

    $config['base_url'] = 'http://www.ci-guide.info/';

$config['index_page']

    フロントコントローラのURLを設定します。通常は「index.php」を設定しますが、 「mod_rewrite」を利用している場合は空白にします。 この設定は「$this->config->site_url()」メソッドと「URLヘルパ」の「site_url()」関数で利用される以外、 他の動作に影響はありません。従って、これらのメソッドと関数を利用しなければ設定する必要はありません。

    //$config['index_page'] = 'index.php';
    $config['index_page'] = '';

$config['uri_protocol'] 一番上に戻る

    URIルーティングで利用する'URI'パスをどのように取得するかの設定です。
    設定できる値とその意味は以下の通りになります。

    • AUTO
    • デフォルトの値です。AUTOに設定すると「CLI」「REQUEST_URI」「PATH_INFO」「QUERY_STRING」 の順番で読み込まれURIパスが読み込めたところでそれが利用されます。

    • CLI
    • コマンドラインでのみCodeIgniterアプリケーションを利用する場合に設定します。
      Webアプリケーションとして利用するときは「CLI」の設定をするとURIルーティングできなくなります。

    • REQUEST_URI
    • HTTP環境変数である$_SERVER['REQUEST_URI']を基に'URI'パスを決定します。

    • PATH_INFO
    • HTTP環境変数である$_SERVER['PATH_INFO']を基に'URI'パスを決定します。
      「http://your.site/hoge/index.php/foo/bar/」といったURIの場合「/foo/bar/」がURIパスとして利用されます。 ほとんどの場合この設定がもっとも無難なものになりますので、「PATH_INFO」を設定することをお勧めします。

    • QUERY_STRING
    • HTTP環境変数である$_SERVER['QUERY_STRING']を基に'URI'パスを決定します。
      「http://your.site/?foo/bar/hoge/」のように「?」以降の文字列が利用されます。

    • ORIG_PATH_INFO
    • HTTP環境変数である$_SERVER['ORIG_PATH_INFO']を基に'URI'パスを決定します。

$config['url_suffix'] 一番上に戻る

    URIのサフィックス(接尾語)を設定します。設定値は「.html」などファイル拡張子をセットすることになります。
    「/foo/bar/」というURIパスがあるとして、「.html」を設定すると「/foo/bar.html」としてアクセスできるようになります。

    $config['url_suffix'] = '.html';
    http://your.site/foo/bar.html
    へのリクエストは
    http://your.site/foo/bar/
    としてURIルーティングされ、「foo」コントローラ「bar」アクションメソッドが実行されます。

$config['language'] 一番上に戻る

    インストール直後のデフォルトでは、「english」のみ設定可能です。
    この設定は「言語クラス」でのデフォルト値として利用されるため、 言語クラスを利用しなければ設定の必要はありません。
    言語クラスの利用方法は、CI_Langの項を参照してください。

    $config['language'] = 'english';

$config['charset'] 一番上に戻る

    システムで利用する文字コードを設定します。
    HTTPサーバ(Apache等)の文字コード設定、PHPソースコードで利用する文字コード、 PHPのmbstringで設定する文字コードと合わせます。
    インストール直後では「UTF-8」が設定されています。 Windowsサーバでは「SJIS」に設定すると必要があるかもしれません。

    $config['charset'] = 'UTF-8';

$config['enable_hooks'] 一番上に戻る

    CodeIgniterでは、以下の7つのフックポイントが用意されており、 システムの動作にオリジナルの処理を追加することができます。

    • URIルーティング前
    • コントローラロード前
    • アクションメソッド実行前
    • ビューロード前
    • 出力の代替え
    • キャッシュの代替え
    • ビューレンダリング後

    このフック機能を利用するかの設定をします。利用する場合は「TRUE
    利用しない場合は「FALSE」をセットします。

    フック機構の利用方法は別の章で説明します。

    $config['enable_hooks'] = 'FALSE';

$config['subclass_prefix'] 一番上に戻る

    CodeIgniterのコアファイルを拡張する際に作成するファイル名及び、クラス名のプリフィックスを設定します。
    例えば、「system/core/Controller.php」ファイルを拡張する場合は「application/core/」ディレクトリに ここで設定したプリフィックスを付けた「MY_Controller.php」というファイル名でクラス名を「My_Controller」として クラスファイルを作成します。

    $config['subclass_prefix'] = 'MY_';
    class MY_Controller extends CI_Controller {
    }

$config['permitted_uri_chars'] 一番上に戻る

    URIパスで利用可能な「文字」を設定します。
    通常、URIパスに利用できる文字はRFC2396で定義されており、初期力この設定を変更する必要はありません。

    $config['permitted_uri_chars'] = 'a-z 0-9~%.:_\-';

    また、日本語などマルチバイトの文字列をURIに含める場合は「URLエンコード」することになります。 特別な理由で、日本語文字列(UTF-8)をURIに利用する場合は

    $config['permitted_uri_chars'] = '一-龠ぁ-んァ-ヴー a-z 0-9~%.:_\-';

    としますが、お勧めはできません。

$config['allow_get_array'] 一番上に戻る

    GETパラメータを利用するか設定します。通常CodeIgniterではGETパラメータの値は「$this->input->get('パラメータ名')」 で取得しますが、この設定を「FALSE」に設定すると「$this->input->get('パラ メータ名')」及び、「$_GET」でのパラメータ値の取得ができなくなります。

    $config['allow_get_array'] = TRUE;

$config['enable_query_strings']
$config['controller_trigger']
$config['function_trigger'] 一番上に戻る

    通常CodeIgniterでは、コントローラとアクションメソッドの決定(URIルーティング)はURIパスにより 行われますが、この設定を「TRUE」にすることで「GETパラメータ」によって コントローラ及び、アクションメソッドを指定できるようになります。

    コントローラとアクションメソッドを指定するパラメータは「controller_trigger」「function_trigger」で 指定します。

    $config['enable_query_strings'] = TRUE;
    $config['controller_trigger'] = 'c';
    $config['function_trigger'] = 'm';
    上記の設定で
    http://your.site/?c=foo&m=bar
    としてリクエストすると「foo」コントローラの「bar」アクションメソッドが実行されます。

$config['log_threshold'] 一番上に戻る

    CodeIgniterのアプリケーションログを出力するログレベルを設定します。
    設定値は「0」から「3」の間で設定します。

    アプリケーションログレベルは以下の3つがあります。

    • Error
    • Debug
    • Informational

    設定値によるログ出力は以下のようになります。

    • 0 : アプリケーションログを一切出力しません。
    • 1 : Errorレベルのアプリケーションログ及び、PHPのエラーを出力します。
    • 2 : DebugとErrorレベルのアプリケーションログ及び、PHPのエラーを出力します。
    • 3 : 全てのレベルのアプリケーションログ及び、PHPのエラーを出力します。
    $config['log_threshold'] = 4;

    アプリケーションログの出力方法は別の章で説明します。

$config['log_path'] 一番上に戻る

    アプリケーションログを出力するディレクトリパスを設定します。
    設定パスは「DocumentRoot」からの相対パスか絶対パスで指定します。
    この設定を空にすると、デフォルトの「application/log/」(APPPATH.'logs/')にアプリケーションログが出力されます。

    $config['log_path'] = '';

    パスを設定する場合は、設定値の最後の「/」を必ずつけるようにしましょう。

    $config['log_path'] = APPPATH.'logs/';
    $config['log_path'] = '/var/log/ci/logs/';

$config['log_date_format'] 一番上に戻る

    アプリケーションログに出力される日時のフォーマットを設定します。
    フォーマットはPHPの「date()」関数で利用されるフォーマットになります。

    $config['log_date_format'] = 'Y-m-d H:i:s';

Session設定

     セッションの設定については、「 CI_Session 」 ライブラリクラスの項を参照してください。

XSS 設定

     XSSの設定については、「 CI_Security 」 ライブラリクラスの項を参照してください。

CSRF 設定

     CSRFの設定については、「 CI_Security 」 ライブラリクラスの項を参照してください。

$config['compress_output'] 一番上に戻る

     クライアントへのレスポンス出力を圧縮する設定をします。

     CodeIgniterからの出力を圧縮するためには、利用しているPHPが「Zlib」に対応している必要があります。
     「Zlib」の対応を確認するには以下のコマンドを実行するか、「phpinfo()」関数で確認します。

    $ php -i |grep ZLib
    ZLib Version => 1.2.3
    ZLib Support => enabled

     利用しているPHPが「Zlib」に対応していて、且つ、PHPの「zlib.output.compression」設定が無効の場合、 「$config['compress_output']」に、「TRUE」を指定すると、 圧縮レスポンスに対応しているクライアントからリクエストがあると、CodeIgniterはレスポンス出力を圧縮します。

    $config['compress_output'] = TRUE;

注:

PHPの「zlib.output.compression」設定が有効の場合は、
PHPがレスポンス出力を圧縮するため、CodeIgniterでは圧縮処理を行いません。


$config['time_reference'] 一番上に戻る

     日付ヘルパーの「now()」関数に影響します。
    詳しくは、「日付ヘルパー」の項を参照してください。

$config['rewrite_short_tags'] 一番上に戻る

     PHPの設定で「PHPタグの短縮形」が許可されていない場合、この設定を「TRUE」にすることで
    ビューファイルに「<?= $word ?>」のような短縮形が記述されていた場合、正常に動作するように
    「<?php echo $word; ?>」に自動で書き換えます。

    var_dump( (boolean)ini_get('short_open_tag') );
    // false
    $config['rewrite_short_tags'] = TRUE;
    • application/views/sample.php
    <html>
    <body>
    <?= $word ?>
    </body>
    </html>
    =>
    <html>
    <body>
    <?php echo $word; ?>
    </body>
    </html>

$config['proxy_ips'] 一番上に戻る

     もし、ネットワーク構成上、Webサーバの上位にリバースプロキシサーバがある場合は、 クライアントからのリクエストは、リバースプロキシを経由するため、クライアントのIPアドレス が取得できません。

     上位のリバースプロキシサーバのIPアドレスを設定することで、それらのリバースプロキシが 「HTTP_X_FORWARDED_FOR」HTTPヘッダを付加していれば、本来のクライアントのIPアドレスが取得できるようになります。

     クライアントのIPアドレスの取得は「CI_Input」クラスの「ip_address()」 メソッドで取得できます。

     上位のリバースプロキシサーバが複数ある場合は、「,」カンマ区切りで設定します。

    $config['proxy_ips'] = '10.0.0.250,10.0.0.251,10.0.0.252';