# 設定

Chamilo 2.0 では、環境変数と Symfony の設定ファイルを使用してコア設定を行います。このページでは、主要な設定ファイルと変数について説明します。

## 環境変数 (.env)

主要な設定ファイルは、Chamilo のルートディレクトリにある `.env` です。このファイルには、バージョン管理にコミットすべきでない環境固有の設定が含まれています。

Chamilo にはデフォルトの `.env.dist` ファイルが同梱されており、ドキュメント化されたデフォルト値が含まれています。インストールを開始するには、環境に合わせて値を上書きする `.env` ファイルを作成する必要があります。

### 主要な変数

| 変数                  | 説明                                                                                                            | 例                 |
| ------------------- | ------------------------------------------------------------------------------------------------------------- | ----------------- |
| `APP_ENV`           | Symfony レベルでのアプリケーション環境。本番環境では `prod`、開発環境では `dev`、テスト環境では `test` を使用します。                                     | `prod`            |
| `APP_SECRET`        | CSRF トークン、クッキーの署名、その他の暗号化操作に使用されるランダムな文字列。Chamilo はインストールごとに一意の値を生成します。変更しないでください。                            | `a1b2c3d4e5f6...` |
| `DATABASE_HOST`     | データベースホスト。デフォルトは localhost です。                                                                                | `localhost`       |
| `DATABASE_PORT`     | データベースポート。MySQL/MariaDB のデフォルトは 3306 です。                                                                      | `3306`            |
| `DATABASE_NAME`     | インストールウィザードで指定したデータベース名。                                                                                      | 以下参照。             |
| `DATABASE_USER`     | インストールウィザードで指定したデータベースユーザー名。                                                                                  | 以下参照。             |
| `DATABASE_PASSWORD` | インストールウィザードで指定したデータベースユーザーのパスワード。                                                                             | 以下参照。             |
| `TRUSTED_PROXIES`   | （オプション）Chamilo をリバースプロキシの背後でホスティングしている場合、Chamilo がリクエストを正しく解釈し、応答を生成できるようにするために、リバースプロキシの IP をここで指定する必要があります。 |                   |

.env 内のその他の設定は比較的変更されることが少ないです。

将来的なバージョンでは、DATABASE\_\* 設定が 1 つの `DATABASE_URL` 変数に統合される予定であることに注意してください。

メール送信の設定はインストール時に表示されますが、後で管理ダッシュボードの「プラットフォーム設定」セクションで変更することができます。

## Symfony 設定 (config/ ディレクトリ)

Symfony レベルの設定は `config/` ディレクトリにあります。これらの YAML ファイルは、フレームワークの動作、サービス定義、パッケージ固有の設定を制御します。

これらのファイルを変更する必要はあまりありませんが、変更するとポータルが動作しなくなる可能性があるため、システムの可用性を確保する必要がある場合は変更を試みないでください。

### 主要な設定ファイル

| ファイル                             | 目的                                                  |
| -------------------------------- | --------------------------------------------------- |
| `config/authentication.yaml`     | 認証方法の設定。                                            |
| `config/packages/doctrine.yaml`  | データベースおよび ORM の設定。                                  |
| `config/packages/security.yaml`  | 認証、ファイアウォール、アクセス制御、ロール階層。                           |
| `config/packages/cache.yaml`     | キャッシュアダプターの設定（ファイルシステム、APCu、Redis）。                 |
| `config/packages/framework.yaml` | 一般的な Symfony フレームワーク設定（セッション、CSRF、ルーター、HTTP キャッシュ）。 |
| `config/packages/twig.yaml`      | テンプレートエンジンの設定。                                      |
| `config/services.yaml`           | アプリケーションサービス定義と依存性注入。                               |

### 環境固有の上書き

Symfony は環境ごとの設定をサポートしています。`APP_ENV=prod` の場合、`config/packages/prod/` 内のファイルがデフォルトを上書きし、`APP_ENV=dev` の場合、`config/packages/dev/` が上書きします。

たとえば、`config/packages/prod/monolog.yaml` は通常、開発環境と比較してログの詳細度を低く設定します。

Chamilo 自体では `config/packages/prod/` に設定を定義していないため、`config/packages/*.yaml` から設定をカスタマイズしたい場合は、そのディレクトリ内に yaml ファイルのコピーを作成し、そこで設定を変更してください。

## ファイル権限

2.0 以降では、権限が必要なディレクトリを 1 つに絞る努力をしました。それが `var/` ディレクトリであり、複雑な問題を避けるために、ウェブサーバーのシステムユーザーが書き込み可能な権限をフォルダ全体に設定するだけで十分です。

Debian ベースのシステムで適切な権限を設定します：

```bash
# ウェブサーバーが www-data として動作するシステムの場合
chown -R www-data:www-data var/
chmod -R 775 var/
```

## 一般的な設定タスク

### 本番モードへの切り替え

```bash
# .env 内
APP_ENV=prod
APP_DEBUG=0
```

次に、キャッシュをクリアしてウォームアップします：

```bash
php bin/console cache:clear --env=prod
php bin/console cache:warmup --env=prod
```

### 信頼できるプロキシの設定

Chamilo がリバースプロキシまたはロードバランサーの背後で動作している場合、HTTPS 検出とクライアント IP 解決が正しく機能するように、信頼できるプロキシを設定します：

```yaml
# .env
TRUSTED_PROXIES='127.0.0.1,PROXY_IP'
```

### セッションストレージの設定

デフォルトでは、セッションはファイルシステムに保存されます。複数サーバーでの展開の場合、Redis またはデータベースをバックエンドとするセッションを設定します：

```yaml
# config/packages/framework.yaml
framework:
    session:
        handler_id: 'redis://localhost:6379'
```

***

## ヒント

* **`.env.dist` を直接編集しない** -- 常にオーバーライドには `.env` を使用してください。`.env.dist` ファイルはアップグレード時に上書きされる可能性があります。
* **本番環境では `APP_DEBUG=0` を維持する** -- デバッグモードはエラーページで機密情報を公開します。
* **`.env` をバックアップする** -- 認証情報が含まれておりバージョン管理から除外されているため、コードベースとは別にバックアップしてください。


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://docs.chamilo.org/2.x-ja/gaido-1/admin-guide/installation/configuration.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
