設定ファイルの使い方

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 [
    'key' => 'value'
];

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

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

<?php

return [
    'group_name' => [
        'key' => 'value'
    ]
];

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

<?php

return [
    'group_1' => [
        'key_1' => 'value_1',
        'key_2' => 'value_2'
    ],
    'group_2' => [
        'key' = 'value'
    ]
];

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

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

<?php

return [
    'group_1' => [
        'key_1' => 'value_1',
        'key_2' => 'value_2'
    ]
];

return [
    'group_2' => [
        'key' = 'value'
    ]
];

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

<?php

return [
    'cache' => [
        'levels' => [
            'expensive' => [
                'drivers' => [
                    [
                        'class' => '\Stash\Driver\Ephemeral'
                    ]
                ]
            ]
        ]
    ]
];

主な設定項目

基本的な設定

サイト名

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

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

メンテナンスモード

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

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

デバッグモード

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

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

メール関連

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

SEO関連の設定

trailing_slash は、URLの末尾に / をつけるかどうかを設定します。デフォルトは false(つけない)です。

title_format は、ページタイトルフォーマットの変更。デフォルト値は '%2$s :: %1$s' です。%1$sがサイト名、%2$sがページ名を表します。

title_segment_separator は、ページ名の中の分割文字を表します。ページリストの絞り込み結果などで使われます。

...
    'seo' => [
        'trailing_slash' => true,
        'title_format' => '%2$s | %1$s',
        'title_segment_separator' => ' | ',
    ],
...

マーケットプレイス関連

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

...
    'marketplace' => [ 'enabled' => false ],
...

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

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

ホワイトラベリング

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

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

アップデート

新しいバージョンがリリースされているかをバックグラウンドでチェックするのを停止する

...
    'updates' => [
        'skip_core' => true, // コアのバージョンアップのチェックを停止
        'skip_packages' => true, // パッケージのバージョンアップのチェックを停止。配列で特定のアドオンのみスキップするように指定することも可能
    ],
...

権限

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

...
    'permissions' => [
        'forward_to_login' => false
    ],
...

ソーシャル

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

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

セキュリティ

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

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

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

...
    'security' => [
        'x_frame_options' => 'ALLOW-FROM example.com',
    ],
....

cookie 関連の設定

...
    'session' => [
        'cookie' => [
            'cookie_secure' => true,
            'cookie_httponly' => true,
        ],
    ],
...

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

その他

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

...
    'misc' => [ 'sitemap_approve_immediately' => false ],
...

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

...
    'misc' => [
        'app_version_display_in_header' => false,
    ],
...

初回ログイン後に表示されるチュートリアル画面の表示制御

...
    'misc' => [
        'help_overlay' => false,
    ],
...

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

...
    'icons' => [
        'user_avatar' => [
            'width' => 200,
            'height' => 200,
        ],
    ],
...