Chamilo LMS is a powerful open-source learning management system that allows you to create and manage courses, track student progress, and evaluate learning outcomes. Here's a step-by-step guide on how to install Chamilo LMS on Linux Mint.
Open the terminal and type the following command to install Apache on Linux Mint:
sudo apt-get install apache2
Once the installation is complete, start the Apache service by running:
sudo systemctl start apache2
To enable Apache to start at boot time, run:
sudo systemctl enable apache2
You will need to install PHP 7.2 or later. To install PHP and its extensions, run the following command:
sudo apt-get install php libapache2-mod-php php-mbstring php-xmlrpc php-soap php-gd php-xml php-cli php-zip
Once the installation is complete, restart the Apache service:
sudo systemctl restart apache2
Chamilo supports both MySQL and MariaDB. To install MariaDB, run the following command:
sudo apt-get install mariadb-server mariadb-client
Once the installation is complete, run the following command to secure the MariaDB installation:
sudo mysql_secure_installation
This will prompt you to set a root password, remove anonymous users, and disallow root login remotely.
Log in to the MariaDB shell as the root user:
sudo mysql -u root -p
Create a new database for Chamilo:
CREATE DATABASE chamilo;
Create a new user and grant it all privileges on the database:
GRANT ALL PRIVILEGES ON chamilo.* TO 'chamilo_user'@'localhost' IDENTIFIED BY 'password';
Replace ‘chamilo_user’ and ‘password’ with your desired username and password.
Flush the privileges and exit the MariaDB shell:
FLUSH PRIVILEGES;
exit;
Composer is a package manager for PHP. To install Composer, run the following commands:
cd ~/
php -r "copy('https://getcomposer.org/installer', 'composer-setup.php');"
php composer-setup.php
php -r "unlink('composer-setup.php');"
sudo mv composer.phar /usr/local/bin/composer
Navigate to the web directory:
cd /var/www/html
Run the following command to clone the Chamilo LMS repository:
sudo git clone https://github.com/chamilo/chamilo-lms.git
Change the ownership to the Apache user:
sudo chown -R www-data:www-data chamilo-lms
Navigate to the Chamilo LMS directory:
cd chamilo-lms
Run the following command to install the dependencies:
sudo composer install
Create the configuration file:
sudo cp app/config/parameters.yml.dist app/config/parameters.yml
Edit the configuration file:
sudo nano app/config/parameters.yml
Update the database connection details:
database_driver: pdo_mysql
database_host: localhost
database_port: 3306
database_name: chamilo
database_user: chamilo_user
database_password: password
Replace the values with the corresponding database connection details.
Create a new virtual host file:
sudo nano /etc/apache2/sites-available/chamilo.conf
Paste the following configuration:
<VirtualHost *:80>
ServerAdmin admin@example.com
DocumentRoot /var/www/html/chamilo-lms/web/
ServerName your-domain.com
<Directory />
Options FollowSymLinks
AllowOverride All
</Directory>
<Directory /var/www/html/chamilo-lms/web/>
Options Indexes FollowSymLinks MultiViews
AllowOverride All
Require all granted
</Directory>
ErrorLog ${APACHE_LOG_DIR}/chamilo_error.log
CustomLog ${APACHE_LOG_DIR}/chamilo_access.log combined
</VirtualHost>
Replace ‘your-domain.com’ with your domain name, and ‘admin@example.com’ with your email address.
Enable the virtual host:
sudo a2ensite chamilo.conf
Reload the Apache service:
sudo systemctl reload apache2
Navigate to the Chamilo LMS directory:
cd /var/www/html/chamilo-lms/
Run the following command to create the cache directories:
sudo mkdir app/cache/prod
sudo chown -R www-data:www-data app/cache/
Run the following command to generate the database schema:
sudo php bin/console doctrine:schema:update --force
Open your web browser and go to the following URL:
http://your-domain.com
You should see the Chamilo LMS installation page. Follow the on-screen instructions to complete the installation.
Congratulations! You have successfully installed Chamilo LMS on Linux Mint.
If you want to self-host in an easy, hands free way, need an external IP address, or simply want your data in your own hands, give IPv6.rs a try!
Alternatively, for the best virtual desktop, try Shells!