# Installation Wizard

Chamilo 2.0 includes a web-based installation wizard that guides you through the initial setup. The wizard runs automatically when you access the platform for the first time.

## Before You Start

Ensure the following prerequisites are met:

1. Your server meets all [server requirements](https://docs.chamilo.org/2.x/administration-guide/admin-guide/installation/server-requirements).
2. You have downloaded or cloned the Chamilo source code.
3. You have installed PHP dependencies: `composer install`
4. You have installed JavaScript dependencies and built assets: `npm install && npm run build`
5. Your web server is configured to serve the `public/` directory as the document root.
6. Your `.env.local` file exists (it can be minimal at this point -- the wizard will guide database setup).

## Step 1: Installation Language

![Installation wizard Step 1 — language selection](https://3870221420-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FSHilSeDtvDev0n1c7wbJ%2Fuploads%2Fgit-blob-3bb63d9477d7c1c7f6f53c60b1e4a05f9f7ff4b3%2Finstall-step1-language.png?alt=media)

The first step lets you select the language for the installation process. Choose your preferred language from the dropdown.

If Chamilo detects an existing installation (for an upgrade), it will display the migration status and offer an upgrade path instead of a fresh install.

## Step 2: Requirements Check

![Installation wizard Step 2 — requirements check showing PHP version, extensions, and directory permissions](https://3870221420-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FSHilSeDtvDev0n1c7wbJ%2Fuploads%2Fgit-blob-2538f869c74fe5bde35450d30ea2b1482ba8e59e%2Finstall-step2-requirements.png?alt=media)

The wizard checks your server environment:

* **PHP version** is 8.2 or higher
* **Required PHP extensions** are installed (intl, gd, curl, zip, mbstring, xml, etc.)
* **Recommended PHP settings** — `date.timezone` is configured, adequate upload/memory limits
* **Directory and file permissions** — `var/`, `config/`, and `public/upload/` are writable by the web server

If any requirements are not met, the wizard displays warnings or errors. Resolve them before proceeding.

## Step 3: License

![Installation wizard Step 3 — license acceptance](https://3870221420-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FSHilSeDtvDev0n1c7wbJ%2Fuploads%2Fgit-blob-f094fb2fe7a74f43c4e25f4efb0c63049641b5ff%2Finstall-step3-license.png?alt=media)

This step displays the GNU GPL v3 license. You must check the **"I accept"** checkbox to proceed.

Optionally, you can expand the **Contact information** section to provide details about your organization (name, email, company, country). This is voluntary and helps the Chamilo community understand who uses the platform.

## Step 4: Database Settings

![Installation wizard Step 4 — database connection configuration](https://3870221420-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FSHilSeDtvDev0n1c7wbJ%2Fuploads%2Fgit-blob-2137cbc14608b72e73c11e47e3da98c8129193e9%2Finstall-step4-database.png?alt=media)

Enter your database connection details:

| Field                 | Description                                                                   |
| --------------------- | ----------------------------------------------------------------------------- |
| **Database host**     | The hostname or IP of your database server (e.g., `localhost` or `127.0.0.1`) |
| **Database port**     | Default: 3306 for MySQL/MariaDB, 5432 for PostgreSQL                          |
| **Database name**     | The name of the database to use (alphanumeric and underscores only)           |
| **Database user**     | A database user with full privileges on the specified database                |
| **Database password** | The password for the database user                                            |

Click **Check database connection** to test. The wizard will not let you proceed until the connection is successful. If the database already exists, a warning is displayed.

## Step 5: Configuration Settings

![Installation wizard Step 5 — administrator account, portal settings, and email configuration](https://3870221420-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FSHilSeDtvDev0n1c7wbJ%2Fuploads%2Fgit-blob-fb38c8506af225df9cd3154cc64d2c3c823c8bc0%2Finstall-step5-config.png?alt=media)

This step combines administrator account creation, portal settings, and email configuration.

### Administrator Account

| Field          | Description                                                      |
| -------------- | ---------------------------------------------------------------- |
| **Login**      | The administrator username                                       |
| **Password**   | Choose a strong password — this account has full platform access |
| **First name** | The administrator's first name                                   |
| **Last name**  | The administrator's last name                                    |
| **Email**      | Used for system notifications and password resets                |
| **Phone**      | Optional contact number                                          |

### Portal Settings

| Field                                  | Description                                             |
| -------------------------------------- | ------------------------------------------------------- |
| **Language**                           | The default interface language                          |
| **Chamilo URL**                        | The base URL where the platform is accessible           |
| **Portal name**                        | The name of your platform (e.g., "My Organization LMS") |
| **Company short name**                 | Your organization's abbreviated name                    |
| **Company URL**                        | Your organization's website                             |
| **Encryption method**                  | Password hashing algorithm — **bcrypt** is recommended  |
| **Allow self-registration**            | Yes / No / After approval                               |
| **Allow self-registration as trainer** | Yes / No                                                |

### Email Configuration

The email settings section lets you configure the mail transport (SMTP, Amazon SES, Mailjet, etc.) and test email delivery. See [Email Configuration](https://docs.chamilo.org/2.x/administration-guide/admin-guide/installation/email-configuration) for details.

All these settings can be changed later from the administration panel.

## Step 6: Last Check Before Install

![Installation wizard Step 6 — review of all settings before installation](https://3870221420-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FSHilSeDtvDev0n1c7wbJ%2Fuploads%2Fgit-blob-53ef3d6ea7c9ab712af17be93542eeb95fab548a%2Finstall-step6-review.png?alt=media)

This step displays a summary of everything you entered for review:

* Administrator credentials (password is hidden by default — click the eye icon to reveal)
* Portal settings
* Database connection details

Review carefully, then click **Install Chamilo** to execute the installation. The wizard creates all database tables, populates initial data, and configures the platform.

A progress bar shows the installation status.

## Step 7: Installation Complete

![Installation wizard Step 7 — completion with security advice and portal link](https://3870221420-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FSHilSeDtvDev0n1c7wbJ%2Fuploads%2Fgit-blob-6905f8077e5f60547b2147a6a44de47122a8350a%2Finstall-step7-complete.png?alt=media)

After installation completes successfully, the wizard shows:

* **Getting started advice** — Suggests creating your first course to explore the platform
* **Security recommendations**:
  * Make the `config/` directory read-only (`chmod 0555`)
  * Delete the `public/main/install/` directory
* A **link to your portal** to log in with the administrator credentials you just created

## Post-Installation

After completing the wizard:

* **Remove or restrict access to the installer** -- The wizard should not be accessible after installation. Chamilo typically locks it automatically, but verify that re-visiting the install URL redirects to the login page.
* **Configure email delivery** -- See [Email Configuration](https://docs.chamilo.org/2.x/administration-guide/admin-guide/installation/email-configuration).
* **Set up backups** -- Before adding content, configure automated database and file backups.
* **Review security settings** -- See [Security Settings](https://docs.chamilo.org/2.x/administration-guide/admin-guide/platform-settings/security-settings).

## Troubleshooting

| Problem                        | Solution                                                                                                                     |
| ------------------------------ | ---------------------------------------------------------------------------------------------------------------------------- |
| Blank page at install URL      | Check PHP error logs. Ensure `APP_ENV=dev` temporarily to see errors in the browser.                                         |
| Database connection fails      | Verify credentials, confirm the database exists, check that the database server allows connections from the web server host. |
| Permission denied errors       | Ensure `var/`, `config/`, and `public/upload/` are writable by the web server user.                                          |
| Assets not loading (no CSS/JS) | Run `npm install && npm run build` to compile frontend assets.                                                               |
