Canvas LMS installation er nem, hvis du gjorde det før. Men for første gang kan det være svært. Hvis det er første gang, du prøver at installere Canvas LMS, skal du helt sikkert læse denne Canvas LMS installationsvejledning. Indeni vil du finde masser af nyttige tips, der vil hjælpe dig med at opsætte Canvas LMS produktionsserver.
Til denne guide vil vi bruge en VPS med Ubuntu 22.04 LTS 64 bit. Serveren har 8 GB RAM og 4 CPU-kerner. Det opfylder minimale hardwarekrav til open source Canvas LMS. Vi anbefaler ikke at installere Canvas på hardware med lavere specifikationer, da installationen kan mislykkes. Vi anbefaler heller ikke at bruge andre OS end Ubuntu. Canvas LMS-installation på Windows understøttes ikke.
Inden du begynder installationen, tjek vores Canvas LMS hosting service. Tjenesten tilbyder administrerede cloud-servere med open source Canvas LMS forudinstalleret. Du kan begynde at bruge LMS uden besværet med at opsætte og administrere dine egne servere.
Canvas LMS installationstrin
Opdater systemet
Først og fremmest bør vi opdatere serveren og pakkerne til den nyeste version.
# sudo apt update && apt upgrade -y
Installer PostgreSQL-databaseserver
Dernæst installerer og konfigurerer vi PostgreSQL-databaseserveren. Når jeg skriver denne artikel er postgresql-14 tilgængelig.
# 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
Download lærredskode til serveren
We will use Git to get Canvas code. Install Git if you don’t have it already.
# sudo apt install git-core
På dette trin vil vi oprette en separat systembruger til Canvas LMS-applikation. Vi downloader Canvas-kode og installerer den under denne konto.
# 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 Canvas LMS-afhængigheder
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 og 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
Monter garn
# sudo npm -g install yarn
Installer NodeJS-afhængigheder
# su - canvas $ cd /home/canvas/public_html $ yarn install
Konfigurer Canvas LMS
Kopier Canvas standardkonfigurationsfiler:
$ 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
Rediger konfigurationsfiler og indtast relevante databaseindstillinger, domæneindstillinger, udgående mailserverindstillinger osv.
$ 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
Udfyld Canvas-database
Kør db:initial_setup for at oprette databasetabeller og udfylde databasen med indledende data. På dette trin bliver du bedt om at oprette Canvas-administratorbruger.
$ 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
Generer aktiver
Kør canvas:compile_assets for at generere skabelonfiler.
$ 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 Apache webserver og Passenger
Dernæst har vi brug for en webserver til at betjene Canvas. Nginx og Apache er de mest populære muligheder. Vi skal installere Apache Passenger til denne 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
Aktiver Passenger Apache-modulet og genstart Apache.
sudo a2enmod passenger sudo apache2ctl restart
Valider libapache2-mod-passager installationen. Kør kommandoer nedenfor for at sikre, at passager- og libapache2-mod-passager-modulet er installeret korrekt.
sudo /usr/bin/passenger-config validate-install sudo /usr/sbin/passenger-memory-stats
Aktiver desuden mod_rewrite og mod_ssl for apache.
$ sudo a2enmod rewrite $ sudo a2enmod ssl
Konfigurer Canvas VirtualHost i Apache
Deaktiver standard Apache virtualhost-konfigurationsfil og opret en virtualhost-konfigurationsfil til lærredsapplikationen.
$ sudo unlink /etc/apache2/sites-enabled/000-default.conf $ sudo vim /etc/apache2/sites-available/canvas.conf
Kopier konfigurationen nedenfor til Canvas virtualhost-konfigurationsfil. Udskift Servernavn, ServerAlias, ServerAdmin, DocumentRoot og andre indstillinger, der matcher dit domænenavn og appplacering.
<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>
Aktiver Canvas virtuel vært
$ sudo a2ensite canvas
$ systemctl reload apache2
På dette tidspunkt bør du være i stand til at få adgang til Canvas via browseren. Åbn din browser og indtast et domænenavn, der er angivet i Servernavn. Canvas standard login-side skulle vises.

Yderligere trin til opsætning af lærred
Hvis Canvas login-side er indlæst i browseren, er dette et godt tegn. Men vi er nødt til at gennemføre nogle flere tweaks for at gøre open source Canvas læringsstyringssystemet klar til produktion.
Installer SSL-certifikat til 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.
Udfør følgende instruktioner på kommandolinjen på maskinen for at sikre, at du har den nyeste version af snapd.
sudo snap install core; sudo snap refresh core
Fjern certbot-auto og eventuelle Certbot OS-pakker
sudo apt-get remove certbot
Installer Certbot
sudo snap install --classic certbot sudo ln -s /snap/bin/certbot /usr/bin/certbot
Installer SSL-certifikat til Canvas ved hjælp af 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 Redis cacheserver
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
Gå derefter tilbage til Canvas-kodemappe og rediger redis-konfigurationsfiler.
vim config/cache_store.yml
Tilføj linjer nedenfor i filen:
test: cache_store: redis_cache_store development: cache_store: redis_cache_store production: cache_store: redis_cache_store
Rediger nu redis.yml-filen og indstil stien til redis-serveren der.
vim config/redis.yml
Hvis Redis er installeret på den samme server som Canvas, bør din konfiguration være noget som denne. Erstat localhost med redis server IP, hvis du installerede redis på ekstern server.
production: servers: - redis://localhost
Gem konfigurationsfilen, og genstart Canvas for at anvende ændringer.
Installer QTIMigrationTool til Canvas
Opsætning af Canvas Automated jobs
Canvas automatiserede job bør køre for at generere rapporter, sende e-mails osv. Næste kommandoer vil konfigurere og starte Canvas forsinkede job.
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 RCE API til Rich Content Editor
Fejlfinding af Canvas installationsfejl
1. Applikationen stødte på følgende fejl: Du har allerede aktiveret strscan 3.0.1, men din Gemfile kræver strscan 3.0.6. Da strscan er en standardperle, kan du enten fjerne din afhængighed af den eller prøve at opdatere til en nyere version af bundler, der understøtter strscan som en standardperle. (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.
Credits
- 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






