L’installation de Canvas LMS est facile si vous l’avez déjà fait. Mais pour la première fois, cela risque d'être difficile. Si c'est la première fois que vous essayez d'installer Canvas LMS, vous devez absolument lire ce guide d'installation de Canvas LMS. À l’intérieur, vous trouverez de nombreux conseils utiles qui vous aideront à configurer le serveur de production Canvas LMS.
Pour ce guide, nous utiliserons un VPS avec Ubuntu 22.04 LTS 64 bits. Le serveur dispose de 8 Go de RAM et de 4 cœurs de processeur. Il répond à la configuration matérielle minimale requise pour le LMS open source Canvas. Nous vous déconseillons d'installer Canvas sur du matériel doté de spécifications inférieures, car l'installation pourrait échouer. Nous déconseillons également d'utiliser un système d'exploitation autre qu'Ubuntu. L'installation de Canvas LMS sous Windows n'est pas prise en charge.
Avant de commencer l'installation, consultez notre Service d'hébergement LMS Canvas. Le service propose des serveurs cloud gérés avec Canvas LMS open source préinstallé. Vous pouvez commencer à utiliser le LMS sans avoir à configurer et à gérer vos propres serveurs.
Étapes d'installation du LMS Canvas
Mettre à jour le système
Tout d'abord, nous devons mettre à jour le serveur et les packages vers la dernière version.
# sudo apt update && apt upgrade -y
Installer le serveur de base de données PostgreSQL
Ensuite, nous installons et configurons le serveur de base de données PostgreSQL. Au moment où j'écris cet article, postgresql-14 est disponible.
# sudo apt-get install postgresql-14
Add postgresql database and a database user for Canvas. You will be asked to set a password for canvas database user.
# sudo -u postgres createuser canvas --no-createdb \ --no-superuser --no-createrole --pwprompt # sudo -u postgres createdb canvas_production --owner=canvas
Téléchargez le code Canvas sur le serveur
We will use Git to get Canvas code. Install Git if you don’t have it already.
# sudo apt install git-core
À cette étape, nous allons créer un utilisateur système distinct pour l'application Canvas LMS. Nous allons télécharger le code Canvas et l’installer sous ce compte.
# useradd --create-home -s /bin/bash canvas # chmod 711 /home/canvas # su - canvas
Clone files from Canvas Github repository into public_html folder.
$ git clone https://github.com/instructure/canvas-lms.git /home/canvas/public_html $ cd /home/canvas/public_html $ git checkout prod
Installer les dépendances de Canvas LMS
Switch back from “canvas” user to a sudo user and install ruby, Node.js, Bundler, Yarn and other Canvas LMS dependencies.
$ sudo apt-get install software-properties-common $ sudo add-apt-repository ppa:instructure/ruby $ sudo apt-get update
Installer Ruby 3.1
$ sudo apt-get install ruby3.1 ruby3.1-dev zlib1g-dev libxml2-dev \ libsqlite3-dev postgresql libpq-dev \ libxmlsec1-dev libidn11-dev curl make g++
Installer Node.js
$ curl -sL https://deb.nodesource.com/setup_16.x | sudo -E bash - $ sudo apt-get install nodejs $ sudo npm install -g npm@latest
Installer Bundler et Ruby Gems
# sudo gem install bundler --version 2.3.26 # su - canvas $ cd /home/canvas/public_html $ bundle config set --local path vendor/bundle $ bundle install
Installer le fil
# sudo npm -g install yarn
Installer les dépendances NodeJS
# su - canvas $ cd /home/canvas/public_html $ yarn install
Configurer Canvas LMS
Copiez les fichiers de configuration par défaut de Canvas :
$ cd /home/canvas/public_html $ for config in amazon_s3 database \ delayed_jobs domain file_store outgoing_mail security external_migration; \ do cp config/$config.yml.example config/$config.yml; done
Modifiez les fichiers de configuration et entrez les paramètres de base de données pertinents, les paramètres de domaine, les paramètres du serveur de courrier sortant, etc.
$ cp config/dynamic_settings.yml.example config/dynamic_settings.yml
$ vim config/dynamic_settings.yml
$ cp config/database.yml.example config/database.yml
$ vim config/database.yml
$ cp config/outgoing_mail.yml.example config/outgoing_mail.yml
$ vim config/outgoing_mail.yml
$ cp config/domain.yml.example config/domain.yml
$ vim config/domain.yml
$ cp config/security.yml.example config/security.yml
$ vim config/security.yml
Remplir la base de données Canvas
Exécutez db:initial_setup pour créer des tables de base de données et remplir la base de données avec les données initiales. À cette étape, il vous sera demandé de créer un utilisateur administrateur Canvas.
$ mv db/migrate/20210823222355_change_immersive_reader_allowed_on_to_on.rb . $ mv db/migrate/20210812210129_add_singleton_column.rb db/migrate/20111111214311_add_singleton_column.rb $ yarn gulp rev $ RAILS_ENV=production bundle exec rake db:initial_setup $ mv 20210823222355_change_immersive_reader_allowed_on_to_on.rb db/migrate/. $ RAILS_ENV=production bundle exec rake db:migrate
Générer des actifs
Exécutez canvas:compile_assets pour générer des fichiers modèles.
$ mkdir -p log tmp/pids public/assets app/stylesheets/brandable_css_brands $ touch app/stylesheets/_brandable_variables_defaults_autogenerated.scss $ touch Gemfile.lock $ touch log/production.log
$ RAILS_ENV=production bundle exec rake canvas:compile_assets
Installer le serveur Web Apache et Passenger
Ensuite, nous avons besoin d'un serveur Web pour servir Canvas. Nginx et Apache sont les options les plus populaires. Nous allons installer Apache Passenger pour ce guide.
$ sudo apt-get install apache2
# Install our PGP key and add HTTPS support for APT sudo apt-get install -y dirmngr gnupg apt-transport-https ca-certificates curl curl https://oss-binaries.phusionpassenger.com/auto-software-signing-gpg-key.txt | gpg --dearmor | sudo tee /etc/apt/trusted.gpg.d/phusion.gpg >/dev/null # Add our APT repository sudo sh -c 'echo deb https://oss-binaries.phusionpassenger.com/apt/passenger jammy main > /etc/apt/sources.list.d/passenger.list' sudo apt-get update # Install Passenger + Apache module sudo apt-get install -y libapache2-mod-passenger
Activez le module Passenger Apache et redémarrez Apache.
sudo a2enmod passenger sudo apache2ctl restart
Validez l'installation de libapache2-mod-passenger. Exécutez les commandes ci-dessous pour vous assurer que les modules passager et libapache2-mod-passenger sont correctement installés.
sudo /usr/bin/passenger-config validate-install sudo /usr/sbin/passenger-memory-stats
Activez également mod_rewrite et mod_ssl pour Apache.
$ sudo a2enmod rewrite $ sudo a2enmod ssl
Configurer Canvas VirtualHost dans Apache
Désactivez le fichier de configuration de l'hôte virtuel Apache par défaut et créez un fichier de configuration de l'hôte virtuel pour l'application canevas.
$ sudo unlink /etc/apache2/sites-enabled/000-default.conf $ sudo vim /etc/apache2/sites-available/canvas.conf
Copiez la configuration ci-dessous dans le fichier de configuration de l'hôte virtuel Canvas. Remplacer Nom du serveur, Alias du serveur, Administrateur du serveur, Racine du document et d'autres paramètres correspondant à votre nom de domaine et à l'emplacement de votre application.
<VirtualHost *:80>
ServerName canvas-test.webhostingzone.org
ServerAlias canvasfiles-test.webhostingzone.org
ServerAdmin youremail@example.com
DocumentRoot /home/canvas/public_html/public
RewriteEngine On
RewriteCond %{HTTP:X-Forwarded-Proto} !=https
RewriteCond %{REQUEST_URI} !^/health_check
RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI} [L]
ErrorLog /var/log/apache2/canvas_errors.log
LogLevel warn
CustomLog /var/log/apache2/canvas_access.log combined
PassengerPreloadBundler on
SetEnv RAILS_ENV production
<Directory /home/canvas/public_html/public>
Options All
AllowOverride All
Require all granted
</Directory>
</VirtualHost>
# If you are only serving HTTP behind a HTTPS-terminating load balancer, skip the next VirtualHost
<VirtualHost *:443>
ServerName canvas-test.webhostingzone.org
ServerAlias canvasfiles-test.webhostingzone.org
ServerAdmin youremail@example.com
DocumentRoot /home/canvas/public_html/public
ErrorLog /var/log/apache2/canvas_errors.log
LogLevel warn
CustomLog /var/log/apache2/canvas_ssl_access.log combined
SSLEngine on
BrowserMatch "MSIE [17-9]" ssl-unclean-shutdown
# the following ssl certificate files are generated for you from the ssl-cert package.
SSLCertificateFile /etc/ssl/certs/ssl-cert-snakeoil.pem
SSLCertificateKeyFile /etc/ssl/private/ssl-cert-snakeoil.key
PassengerPreloadBundler on
SetEnv RAILS_ENV production
<Directory /home/canvas/public_html/public>
Options All
AllowOverride All
Require all granted
</Directory>
</VirtualHost>
Activer l'hôte virtuel Canvas
$ sudo a2ensite canvas
$ systemctl reload apache2
À ce stade, vous devriez pouvoir accéder à Canvas via un navigateur. Ouvrez votre navigateur et saisissez un nom de domaine spécifié dans Nom du serveur. La page de connexion par défaut de Canvas devrait apparaître.

Autres étapes de configuration du canevas
Si la page de connexion Canvas est chargée dans le navigateur, c'est bon signe. Mais nous devons effectuer quelques ajustements supplémentaires pour que le système open source de gestion de l'apprentissage Canvas soit prêt pour la production.
Installer le certificat SSL pour Canvas
When Canvas domain name or sub-domain is pointed to server’s IP address we can proceed and install SSL certificate for Canvas LMS app. For this guide we will install a free LetsEncrypt SSL certificate.
Exécutez les instructions suivantes sur la ligne de commande sur la machine pour vous assurer que vous disposez de la dernière version de snapd.
sudo snap install core; sudo snap refresh core
Supprimez certbot-auto et tous les packages du système d'exploitation Certbot
sudo apt-get remove certbot
Installer Certbot
sudo snap install --classic certbot sudo ln -s /snap/bin/certbot /usr/bin/certbot
Installer le certificat SSL pour Canvas à l'aide de certbot
sudo certbot --apache
When SSL certificate is installed correctly you should see a lock icon and text “Connection secure” in a browser when accessing Canvas URI.

Installer le serveur de cache Redis
It’s a good idea to install Redis cache server in order to optimize Canvas performance. Redis version 2.6.x or above is required. Add PPA repository and install Redis.
sysadmin@appserver:/var/canvas$ sudo add-apt-repository ppa:chris-lea/redis-server sysadmin@appserver:/var/canvas$ sudo apt-get update sysadmin@appserver:/var/canvas$ sudo apt-get install redis-server
Revenez ensuite au répertoire de code Canvas et modifiez les fichiers de configuration Redis.
vim config/cache_store.yml
Ajoutez les lignes ci-dessous dans le fichier :
test: cache_store: redis_cache_store development: cache_store: redis_cache_store production: cache_store: redis_cache_store
Modifiez maintenant le fichier redis.yml et définissez-y le chemin d'accès au serveur Redis.
vim config/redis.yml
Si Redis est installé sur le même serveur que Canvas, votre configuration devrait ressembler à ceci. Remplacez localhost par l'adresse IP du serveur Redis si vous avez installé Redis sur un serveur externe.
production: servers: - redis://localhost
Enregistrez le fichier de configuration et redémarrez Canvas pour appliquer les modifications.
Installer QTIMigrationTool pour Canvas
Configurer les tâches automatisées Canvas
Les tâches automatisées Canvas doivent être en cours d'exécution afin de générer des rapports, d'envoyer des e-mails, etc. Les commandes suivantes configureront et démarreront les tâches retardées Canvas.
canvas$ sudo ln -s /home/canvas/public_html/script/canvas_init /etc/init.d/canvas_init canvas$ sudo update-rc.d canvas_init defaults canvas$ sudo /etc/init.d/canvas_init start
Installer l'API RCE pour Rich Content Editor
Dépannage des erreurs d'installation de Canvas
1. L'application a rencontré l'erreur suivante : Vous avez déjà activé strscan 3.0.1, mais votre Gemfile nécessite strscan 3.0.6. Étant donné que strscan est une gemme par défaut, vous pouvez soit supprimer votre dépendance, soit essayer de mettre à jour vers une version plus récente du bundler qui prend en charge strscan comme gemme par défaut. (Gemme :: LoadError)
Solution: preload Bundler with "PassengerPreloadBundler on" Apache configuration option
2. Common errors during compile assets: FrozenError: can’t modify frozen Array
Solution: delete Canvas project folder, download files from Github again and repeat installation steps.
Crédits
- Canvas Production Start – https://github.com/instructure/canvas-lms/wiki/Production-Start
- Installing Passenger – https://www.phusionpassenger.com/docs/advanced_guides/install_and_upgrade/apache/install/oss/jammy.html
- Canvas LMS Installation Service – https://www.webhostingzone.org/solutions/canvas-lms-installation.html






