設定ファイルの使い方

concrete5に関する設定は、application/config/concrete.php ファイルに定義することで変更できます。もちろん、管理画面から設定可能なオプションも多くありますし、その場合は設定ファイルを直接編集する必要はありません。しかし、一部の設定は管理画面からの変更ではなく、このファイルに記載することで変更するしくみになっています。また、管理画面から設定可能な項目であっても、環境ごとに値を変更したい場合などは、このファイルから設定を上書きすることができます。デフォルト値の一覧は、concrete5/config/concrete.php を参照してください。

管理画面の設定情報

下記の設定の一部は concrete5 の管理画面からも設定が可能です。管理画面から設定した項目は concrete5 側で /application/config/generated_overrides/concrete.php としてファイルを生成し、設定を保存します。

このファイルは concrete5 側で変更を行うので、絶対にファイルを直接編集しないでください。

/application/config/concrete.php 上に同じ設定項目があれば、「generated_overrides」以下の設定よりも、こちらの設定が優先されます。

基本的な記述方法

このファイルでは、PHPの「連想配列」の形式で記述します。下記が基本的な文法です。

<?php

return array(
    'key' => 'value'
);

key が、設定項目の名前です。
value が、この設定項目に対して設定したい値です。

このファイル内の設定項目は、グループごとに分類されており、階層構造で表します。 

<?php

return array(
    'group_name' => array(
        'key' => 'value'
    )
);

複数のグループや設定項目がある場合は、カンマ区切りでつなげて、ひとつの配列として記述します。

<?php

return array(
    'group_1' => array(
        'key_1' => 'value_1',
        'key_2' => 'value_2'
    ),
    'group_2' => array(
        'key' = 'value'
    )
);

複数の配列を記述しても、最初のものしか認識されません。

以下は複数の配列に分かれてしまっているため、無効な例です。

<?php

return array(
    'group_1' => array(
        'key_1' => 'value_1',
        'key_2' => 'value_2'
    )
);

return array(
    'group_2' => array(
        'key' = 'value'
    )
);

中には、さらに深い階層でグループ分けされている項目もあります。

<?php

return array(
    'cache' => array(
        'levels' => array(
            'expensive' => array(
                'drivers' => array(
                    array(
                        'class' => '\Stash\Driver\Ephemeral'
                    )
                )
            )
        )
    )
);

主な設定項目

基本的な設定

サイト名

管理画面からのサイト名の設定を上書きできます。

...
    'site'=> '開発環境',
...

メンテナンスモード

管理画面からのメンテナンスモードの設定を上書きできます。

...
    'maintenance_mode'  => true,
...

デバッグモード

管理画面からのデバッグモードの設定を上書きできます。

...
    'debug' => array(
        // trueで表示、falseで非表示
        'display_errors' => true,
        // messageでメッセージのみ、
        // debugでデバッグ用表示
        'detail'         => 'debug'
    ),
...

メール関連

...
    'email' =>
        // falseにするとシステムからメールを送信しない
        'enabled' => true,
        // デフォルト設定
        'default' => array(
            // Fromメールアドレス
            'address' => 'noreply@example.com',
            // From名前
            'name'    => 'concrete5'
        ),
        // フォームブロックのメール設定
        'form_block' => array(
            // Fromメールアドレス
            'address' => 'noreply@example.com'
        )
    ),
...

SEO関連の設定

ページタイトルフォーマットの変更。デフォルト値は '%1$s :: %2$s' です。%1$sがサイト名、%2$sがページ名を表します。これを、「ページ名 | サイト名」に変更したい場合は

...
    'seo' => array( 'title_format' => '%2$s | %1$s'),
...

マーケットプレイス関連

マーケットプレイスへの接続を無効にする

...
    'marketplace' => array( 'enabled' => false ),
...

concrete5.orgのニュースやヘルプの表示

...
    'external'=> array(
        // ツールバーの検索にヘルプを出すかどうか。falseで出さない
        'intelligent_search_help' => true,
        // ログイン時のニュースを出すかどうか。falseで出さない
        'news_overlay'            => true
    ),
...

ホワイトラベリング

concrete5ベースの独自CMSとして見せる際の設定

...
    'white_label' => array(
        // 左上のロゴ画像
        'logo' => '/logo.png',
        // アプリケーション名、デフォルトはconcrete5
        'name' => 'sement6',
        // ログイン画面の背景画像を 'none' 指定で表示しない
        'background_image' => 'none',
        // ログイン画面の背景画像をURLで指定
        'background_url' => '/background.jpg',
    ),
...

アップデート

新しいconcreteコアを判別した際にバックグラウンドで自動アップデートする(注意:古いコアを新しいコアで置き換える必要があります)。

...
    'updates' => array(
        'enable_auto_update_core' => true
    ),
...

権限

ユーザーが表示権限のないページにアクセスした際に、ログインフォームではなく403ページを表示する(5.7.5以降)

...
    'permissions' => array(
        'forward_to_login' => false
    ),
...

ソーシャル

ソーシャルアイコンの追加(5.7.5以降)

...
    'social' => array(
        'additional_services' => array(
            array(
                'mail',
                'Mail',
                'envelope-o',
            ),
            array(
                'hello_world',
                'Hello World',
                'hi',
                '<b class="hi">Hi</b>',
            ),
        ),
    ),
...

セキュリティ

セッション固定化攻撃対策の解除

...
    'security' => array(
        'session' => array(
            'invalidate_on_user_agent_mismatch' => false, // User Agent が変更された際にセッションを切る対策を解除
            'invalidate_on_ip_mismatch' => false // IPアドレスが変更された際にセッションを切る対策を解除
        ),
    ),
...

クリックジャッキング対策の設定変更・解除

...
    'security' => array(
        'x_frame_options' => 'ALLOW-FROM example.com',
    ),
....

cookie 関連の設定

...
    'session' => array(
        'cookie' => array(
            'cookie_secure' => true,
            'cookie_httponly' => true,
        ),
    ),
...

参考:X-Frame-Options レスポンスヘッダ

その他

サイトマップからページを作成した際に即承認しない

...
    'misc' => array( 'sitemap_approve_immediately' => false ),
...

headタグ内のバージョン番号を非表示

...
    'misc' => array(
        'app_version_display_in_header' => false,
    ),
...

ユーザーのアバターサイズを変更する

...
    'icons' => array(
        'user_avatar' => array(
            'width' => 200,
            'height' => 200,
        ),
    ),
...