La instalación de Canvas LMS es fácil si lo hiciste antes. Pero por primera vez podría resultar complicado. Si es la primera vez que intenta instalar Canvas LMS, definitivamente debe leer esta guía de instalación de Canvas LMS. En su interior encontrará muchos consejos útiles que le ayudarán a configurar el servidor de producción Canvas LMS.
Para esta guía usaremos un VPS con Ubuntu 22.04 LTS de 64 bits. El servidor tiene 8 GB de RAM y 4 núcleos de CPU. Cumple con los requisitos mínimos de hardware para Canvas LMS de código abierto. No recomendamos instalar Canvas en hardware con especificaciones inferiores ya que la instalación puede fallar. Tampoco recomendamos utilizar ningún sistema operativo que no sea Ubuntu. La instalación de Canvas LMS en Windows no es compatible.
Antes de comenzar la instalación, consulte nuestro Servicio de alojamiento Canvas LMS. El servicio ofrece servidores en la nube administrados con Canvas LMS de código abierto preinstalado. Puede comenzar a utilizar el LMS sin la molestia de configurar y administrar sus propios servidores.
Pasos de instalación de Canvas LMS
Actualizar el sistema
En primer lugar debemos actualizar el servidor y los paquetes a la última versión.
# sudo apt update && apt upgrade -y
Instalar el servidor de base de datos PostgreSQL
A continuación instalamos y configuramos el servidor de base de datos PostgreSQL. Cuando escribo este artículo, 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
Descargar el código de 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 este paso crearemos un usuario de sistema independiente para la aplicación Canvas LMS. Descargaremos el código de Canvas y lo instalaremos en esta cuenta.
# 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
Instalar dependencias 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
Instalar Rubí 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++
Instalar 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
Instalar Bundler y 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
Instalar hilo
# sudo npm -g install yarn
Instalar dependencias de NodeJS
# su - canvas $ cd /home/canvas/public_html $ yarn install
Configurar lienzo LMS
Copie los archivos de configuración predeterminados 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
Edite los archivos de configuración e ingrese las configuraciones relevantes de la base de datos, la configuración del dominio, la configuración del servidor de correo saliente, 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
Llenar la base de datos de Canvas
Ejecute db:initial_setup para crear tablas de base de datos y completar la base de datos con datos iniciales. En este paso se le pedirá que cree un usuario 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 activos
Ejecute canvas:compile_assets para generar archivos 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
Instalar el servidor web Apache y Passenger
A continuación necesitamos un servidor web para servir Canvas. Nginx y Apache son las opciones más populares. Vamos a instalar Apache Passenger para esta guía.
$ 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
Habilite el módulo Passenger Apache y reinicie Apache.
sudo a2enmod passenger sudo apache2ctl restart
Valide libapache2-mod-passenger la instalación. Ejecute los siguientes comandos para asegurarse de que el módulo pasajero y libapache2-mod-passenger estén instalados correctamente.
sudo /usr/bin/passenger-config validate-install sudo /usr/sbin/passenger-memory-stats
Además, habilite mod_rewrite y mod_ssl para Apache.
$ sudo a2enmod rewrite $ sudo a2enmod ssl
Configurar Canvas VirtualHost en Apache
Deshabilite el archivo de configuración de host virtual de Apache predeterminado y cree un archivo de configuración de host virtual para la aplicación de lienzo.
$ sudo unlink /etc/apache2/sites-enabled/000-default.conf $ sudo vim /etc/apache2/sites-available/canvas.conf
Copie la configuración a continuación en el archivo de configuración de Canvas virtualhost. Reemplazar Nombre del servidor, Alias del servidor, Administrador del servidor, raíz del documento y otras configuraciones para que coincidan con su nombre de dominio y ubicación de la aplicación.
<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>
Habilitar el host virtual de Canvas
$ sudo a2ensite canvas
$ systemctl reload apache2
En este punto debería poder acceder a Canvas a través del navegador. Abra su navegador y escriba el nombre de dominio especificado en Nombre del servidor. Debería aparecer la página de inicio de sesión predeterminada de Canvas.

Otros pasos de configuración de Canvas
Si la página de inicio de sesión de Canvas está cargada en el navegador, es una buena señal. Pero necesitamos completar algunos ajustes más para que el sistema de gestión de aprendizaje Canvas de código abierto esté listo para producción.
Instalar certificado SSL para 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.
Ejecute las siguientes instrucciones en la línea de comando de la máquina para asegurarse de tener la última versión de snapd.
sudo snap install core; sudo snap refresh core
Elimine certbot-auto y cualquier paquete de Certbot OS
sudo apt-get remove certbot
Instalar Certbot
sudo snap install --classic certbot sudo ln -s /snap/bin/certbot /usr/bin/certbot
Instale el certificado SSL para Canvas usando 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.

Instalar el servidor de caché 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
Luego regrese al directorio de códigos de Canvas y edite los archivos de configuración de Redis.
vim config/cache_store.yml
Agregue las siguientes líneas al archivo:
test: cache_store: redis_cache_store development: cache_store: redis_cache_store production: cache_store: redis_cache_store
Ahora edite el archivo redis.yml y establezca la ruta al servidor redis allí.
vim config/redis.yml
Si Redis está instalado en el mismo servidor que Canvas, entonces su configuración debería ser algo como esto. Reemplace localhost con la IP del servidor redis si instaló redis en un servidor externo.
production: servers: - redis://localhost
Guarde el archivo de configuración y reinicie Canvas para aplicar los cambios.
Instalar QTIMigrationTool para Canvas
Empleos de Configurar Canvas Automatizado
Los trabajos automatizados de Canvas deben estar ejecutándose para generar informes, enviar correos electrónicos, etc. Los siguientes comandos configurarán e iniciarán los trabajos retrasados 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
Instale la API RCE para el editor de contenido enriquecido
Solución de problemas de errores de instalación de Canvas
1. La aplicación encontró el siguiente error: Ya activó strscan 3.0.1, pero su Gemfile requiere strscan 3.0.6. Dado que strscan es una gema predeterminada, puede eliminar su dependencia de ella o intentar actualizar a una versión más nueva del paquete que admita strscan como gema predeterminada. (Gema::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éditos
- 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






