Kuinka asentaa Canvas LMS Ubuntu 24.04 / 26.04 LTS:lle

Canvas LMS:n asennus on helppoa, jos olet tehnyt sen aiemmin. Mutta ensimmäisellä kerralla se saattaa olla vaikeaa. Jos tämä on ensimmäinen kerta, kun yrität asentaa Canvas LMS:n, sinun kannattaa ehdottomasti lukea tämä Canvas LMS:n asennusopas. Sisältä löydät paljon hyödyllisiä vinkkejä, jotka auttavat sinua asentamaan Canvas LMS:n tuotantopalvelimen.

Tässä oppaassa käytämme VPS:ää jolla Ubuntu 24.04 LTS 64-bittinen. Palvelimessa on 8 Gt RAM-muistia ja 4 CPU-ydintä. Se täyttää avoimen lähdekoodin Canvas LMS:n minimivaatimukset. Emme suosittele Canvasin asentamista laitteistolle, jonka tekniset tiedot ovat alhaisemmat, sillä asennus saattaa epäonnistua. Emme myöskään suosittele käyttämään muuta käyttöjärjestelmää kuin Ubuntu. Canvas LMS:n asennusta Windowsille ei tueta.

Ennen kuin aloitat asennuksen, tutustu meidän Canvas LMS -isännöintipalvelu. Palvelu tarjoaa hallittuja pilvipalvelimia, joihin on esiasennettu avoimen lähdekoodin Canvas LMS. Voit alkaa käyttää LMS:ää ilman vaivannäköä omien palvelimien asettamisessa ja hallinnassa.

Canvas LMS:n asennusvaiheet

Päivitä järjestelmä

Ensinnäkin meidän tulisi päivittää palvelin ja paketit viimeisimpään versioon.

# sudo apt update && apt upgrade -y

Asenna PostgreSQL-tietokantapalvelin

Seuraavaksi asennamme ja konfiguroimme PostgreSQL-tietokantapalvelimen. Kun kirjoitan tätä artikkelia, postgresql-14 on saatavilla.

# 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

Lataa Canvas-koodi palvelimelle

We will use Git to get Canvas code. Install Git if you don’t have it already.

# sudo apt install git-core

Tässä vaiheessa luomme erillisen järjestelmäkäyttäjän Canvas LMS -sovellusta varten. Lataamme Canvas-koodin ja asennamme sen tämän tilin alle.

# 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

Asenna Canvas LMS:n riippuvuudet

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

Asenna 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++

Asenna 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

Asenna Bundler ja 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

Asenna Yarn

# sudo npm -g install yarn

Asenna NodeJS-riippuvuudet

# su - canvas
$ cd /home/canvas/public_html
$ yarn install

Määritä Canvas LMS

Kopioi Canvasin oletuskonfiguraatiotiedostot:

$ 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

Muokkaa konfiguraatiotiedostoja ja syötä asiaankuuluvat tietokantasetukset, verkkotunnusasetukset, lähtevän sähköpostipalvelimen asetukset jne.

$ 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

Täytä Canvas-tietokanta

Suorita db:initial_setup luodaksesi tietokantataulut ja täyttääksesi tietokannan alkuperäisillä tiedoilla. Tässä vaiheessa sinulta kysytään Canvas-järjestelmänvalvojan käyttäjän luomista.

$ 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

Generoi varat

Suorita canvas:compile_assets luodaksesi mallitiedostot.

$ 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

Asenna Apache-verkkopalvelin ja Passenger

Seuraavaksi tarvitsemme verkkopalvelimen Canvasin tarjoamiseen. Nginx ja Apache ovat suosituimmat vaihtoehdot. Asennamme Apache + Passenger tämän oppaan vuoksi.

$ 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

Ota käyttöön Passenger Apache -moduuli ja käynnistä Apache uudelleen.

sudo a2enmod passenger
sudo apache2ctl restart

Vahvista libapache2-mod-passengerin asennus. Suorita alla olevat komennot varmistaaksesi, että passenger ja libapache2-mod-passenger -moduuli on asennettu oikein.

sudo /usr/bin/passenger-config validate-install
sudo /usr/sbin/passenger-memory-stats

Ota lisäksi käyttöön mod_rewrite ja mod_ssl apachelle.

$ sudo a2enmod rewrite 
$ sudo a2enmod ssl

Määritä Canvas VirtualHost Apacheen

Poista käytöstä oletus Apache-virtuaalipalvelimen konfiguraatiotiedosto ja luo virtuaalipalvelimen konfiguraatiotiedosto canvas-sovellusta varten.

$ sudo unlink /etc/apache2/sites-enabled/000-default.conf
$ sudo vim /etc/apache2/sites-available/canvas.conf

Kopioi alla oleva konfiguraatio Canvas-virtuaalipalvelimen konfiguraatiotiedostoon. Korvaa ServerName, ServerAlias, ServerAdmin, DocumentRoot ja muut asetukset vastaamaan verkkotunnustasi ja sovelluksen sijaintia.

<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>

Ota käyttöön Canvas-virtuaalipalvelin

$ sudo a2ensite canvas
$ systemctl reload apache2 

Tässä vaiheessa sinun pitäisi pystyä käyttämään Canvasia selaimen kautta. Avaa selain ja kirjoita verkkotunnus, joka on määritelty ServerName. Canvasin oletuskirjautumissivun pitäisi ilmestyä.

canvas lms login page after successful canvas installation
Canvas LMS -asennus valmis

 

Lisä Canvasin asetuksen vaiheet

Jos Canvasin kirjautumissivu latautuu selaimessa, tämä on hyvä merkki. Mutta meidän on suoritettava vielä muutama säätö, jotta avoimen lähdekoodin Canvas-oppimisjärjestelmä olisi valmis tuotantokäyttöön.

Asenna SSL-sertifikaatti Canvasille

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.

Suorita seuraavat ohjeet komentorivillä koneella varmistaaksesi, että sinulla on uusin versio snapd:stä.

sudo snap install core; sudo snap refresh core

Poista certbot-auto ja kaikki Certbotin OS-paketit

sudo apt-get remove certbot

Asenna Certbot

sudo snap install --classic certbot
sudo ln -s /snap/bin/certbot /usr/bin/certbot

Asenna SSL-sertifikaatti Canvasille käyttäen certbotia

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.

SSL certificate is installed for Canvas LMS
SSL-sertifikaatti Canvasille on asennettu

Asenna Redis-välimuistipalvelin

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

Seuraavaksi siirry Canvas-koodihakemistoon ja muokkaa redis-konfiguraatiotiedostoja.

vim config/cache_store.yml

Lisää seuraavat rivit tiedostoon:

test:
  cache_store: redis_cache_store
development:
  cache_store: redis_cache_store
production:
  cache_store: redis_cache_store

Muokkaa nyt redis.yml-tiedostoa ja aseta polku redis-palvelimelle sinne.

vim config/redis.yml

Jos Redis on asennettu samalle palvelimelle kuin Canvas, niin konfiguraatiosi pitäisi olla jotain tällaista. Korvaa localhost redis-palvelimen IP-osoitteella, jos asensit redisin ulkoiselle palvelimelle.

production:
  servers:
    - redis://localhost

Tallenna konfiguraatiotiedosto ja käynnistä Canvas uudelleen muutosten voimaantulemiseksi.

Asenna QTIMigrationTool Canvasille

Aseta Canvasin automaattiset työt

Canvasin automaattisten töiden tulisi olla käynnissä raporttien luomiseksi, sähköpostien lähettämiseksi jne. Seuraavat komennot konfiguroivat ja käynnistävät Canvasin viivästetyt työt.

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

Asenna RCE API Rich Content Editorille

Vianetsintä Canvas-asennusvirheille

1. Sovellus kohtasi seuraavan virheen: Olet jo aktivoinut strscan 3.0.1, mutta Gemfileesi vaatii strscan 3.0.6. Koska strscan on oletusgem, voit joko poistaa riippuvuutesi siitä tai yrittää päivittää uudempaan bundler-versioon, joka tukee strscania oletusgeminä. (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.

Kiitokset

  1. Canvas Production Start – https://github.com/instructure/canvas-lms/wiki/Production-Start
  2. Installing Passenger – https://www.phusionpassenger.com/docs/advanced_guides/install_and_upgrade/apache/install/oss/jammy.html
  3. Canvas LMS Installation Service – https://www.webhostingzone.org/solutions/canvas-lms-installation.html