La instal·lació de Canvas LMS és fàcil si ho heu fet abans. Però per primera vegada pot ser difícil. Si és la primera vegada que intenteu instal·lar Canvas LMS, definitivament haureu de llegir aquesta guia d'instal·lació de Canvas LMS. A l'interior hi trobareu molts consells útils que us ajudaran a configurar el servidor de producció de Canvas LMS.
Per a aquesta guia utilitzarem a VPS amb Ubuntu 22.04 LTS de 64 bits. El servidor té 8 GB de RAM i 4 nuclis de CPU. Compleix els requisits mínims de maquinari per al Canvas LMS de codi obert. No recomanem instal·lar Canvas en maquinari amb especificacions inferiors, ja que la instal·lació pot fallar. Tampoc recomanem utilitzar un sistema operatiu diferent d'Ubuntu. La instal·lació de Canvas LMS a Windows no és compatible.
Abans de començar la instal·lació, consulteu el nostre Servei d'allotjament de Canvas LMS. El servei ofereix servidors en núvol gestionats amb Canvas LMS de codi obert preinstal·lat. Podeu començar a utilitzar el LMS sense la molèstia de configurar i gestionar els propis servidors.
Passos d'instal·lació de Canvas LMS
Actualitzar el sistema
Primer de tot hauríem d'actualitzar el servidor i els paquets a la darrera versió.
# sudo apt update && apt upgrade -y
Instal·leu el servidor de bases de dades PostgreSQL
A continuació instal·lem i configurem el servidor de bases de dades PostgreSQL. Quan escric aquest article, el 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
Baixeu el codi Canvas al servidor
We will use Git to get Canvas code. Install Git if you don’t have it already.
# sudo apt install git-core
En aquest pas, crearem un usuari del sistema independent per a l'aplicació Canvas LMS. Baixarem el codi Canvas i l'instal·larem amb aquest 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
Instal·leu les dependències 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
Instal·leu 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++
Instal·leu 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
Instal·leu Bundler i 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
Instal·leu el fil
# sudo npm -g install yarn
Instal·leu les dependències de NodeJS
# su - canvas $ cd /home/canvas/public_html $ yarn install
Configura Canvas LMS
Copieu els fitxers de configuració predeterminats 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
Editeu els fitxers de configuració i introduïu la configuració rellevant de la base de dades, la configuració del domini, la configuració del servidor de correu de sortida, 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
Omple la base de dades Canvas
Executeu db:initial_setup per crear taules de base de dades i omplir la base de dades amb les dades inicials. En aquest pas se us demanarà que creeu un usuari administrador de 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
Generar actius
Executeu canvas:compile_assets per generar fitxers de plantilla.
$ 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
Instal·leu el servidor web Apache i Passenger
A continuació, necessitem un servidor web per servir Canvas. Nginx i Apache són les opcions més populars. Instal·larem Apache Passenger per a aquesta guia.
$ 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
Habiliteu el mòdul Passenger Apache i reinicieu Apache.
sudo a2enmod passenger sudo apache2ctl restart
Valideu la instal·lació de libapache2-mod-passenger. Executeu les ordres següents per assegurar-vos que el mòdul passatger i libapache2-mod-passenger estiguin instal·lats correctament.
sudo /usr/bin/passenger-config validate-install sudo /usr/sbin/passenger-memory-stats
A més, activeu mod_rewrite i mod_ssl per a Apache.
$ sudo a2enmod rewrite $ sudo a2enmod ssl
Configureu Canvas VirtualHost a Apache
Desactiveu el fitxer de configuració predeterminat d'Apache virtualhost i creeu un fitxer de configuració de virtualhost per a l'aplicació canvas.
$ sudo unlink /etc/apache2/sites-enabled/000-default.conf $ sudo vim /etc/apache2/sites-available/canvas.conf
Copieu la configuració següent al fitxer de configuració de l'host virtual de Canvas. Substitueix ServerName, ServerAlias, ServerAdmin, DocumentRoot i altres configuracions perquè coincideixin amb el vostre nom de domini i la ubicació de l'aplicació.
<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>
Activa l'amfitrió virtual de Canvas
$ sudo a2ensite canvas
$ systemctl reload apache2
En aquest punt hauríeu de poder accedir a Canvas mitjançant el navegador. Obriu el vostre navegador i introduïu un nom de domini especificat a ServerName. Hauria d'aparèixer la pàgina d'inici de sessió predeterminada de Canvas.

Passos addicionals de configuració del llenç
Si la pàgina d'inici de sessió de Canvas es carrega al navegador, això és un bon senyal. Però hem de completar uns quants retocs més per preparar el sistema de gestió d'aprenentatge Canvas de codi obert per a la producció.
Instal·leu el certificat SSL per a 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.
Executeu les instruccions següents a la línia d'ordres de la màquina per assegurar-vos que teniu la versió més recent de snapd.
sudo snap install core; sudo snap refresh core
Elimineu certbot-auto i qualsevol paquet del sistema operatiu Certbot
sudo apt-get remove certbot
Instal·leu Certbot
sudo snap install --classic certbot sudo ln -s /snap/bin/certbot /usr/bin/certbot
Instal·leu el certificat SSL per a Canvas mitjançant 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.

Instal·leu el servidor de memòria cau 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
A continuació, torneu al directori de codi Canvas i editeu els fitxers de configuració de redis.
vim config/cache_store.yml
Afegiu línies a continuació al fitxer:
test: cache_store: redis_cache_store development: cache_store: redis_cache_store production: cache_store: redis_cache_store
Ara editeu el fitxer redis.yml i configureu-hi el camí del servidor redis.
vim config/redis.yml
Si Redis està instal·lat al mateix servidor que Canvas, la vostra configuració hauria de ser com aquesta. Substituïu localhost per la IP del servidor redis si heu instal·lat redis al servidor extern.
production: servers: - redis://localhost
Deseu el fitxer de configuració i reinicieu Canvas per aplicar els canvis.
Instal·leu QTIMigrationTool per a Canvas
Configurar treballs automatitzats de Canvas
Els treballs automatitzats de Canvas s'han d'executar per generar informes, enviar correus electrònics, etc. Les ordres següents configuraran i iniciaran els treballs retardats de 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
Instal·leu l'API RCE per a Rich Content Editor
Resolució d'errors d'instal·lació de Canvas
1. L'aplicació ha trobat el següent error: Ja heu activat strscan 3.0.1, però el vostre Gemfile requereix strscan 3.0.6. Com que strscan és una joia predeterminada, podeu eliminar la vostra dependència o provar d'actualitzar a una versió més nova de bundler que admeti strscan com a joia predeterminada. (Gem::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






