Kā instalēt Canvas LMS uz Ubuntu 24.04 / 26.04 LTS

Canvas LMS instalācija ir viegla, ja to esi darījis iepriekš. Bet pirmajā reizē tas var būt grūti. Ja šī ir tava pirmā reize, kad mēģini instalēt Canvas LMS, tad tev noteikti jāizlasa šis Canvas LMS instalācijas ceļvedis. Iekšā tu atradīsi daudz noderīgu padomu, kas palīdzēs tev iestatīt Canvas LMS ražošanas serveri.

Šim ceļvedim mēs izmantosim VPS ar Ubuntu 24.04 LTS 64 bit. Serverim ir 8GB RAM un 4 CPU kodoli. Tas atbilst minimālajām aparatūras prasībām atvērtā koda Canvas LMS. Mēs neiesakām instalēt Canvas uz aparatūras ar zemākām specifikācijām, jo instalācija var neizdoties. Mēs arī neiesakām izmantot operētājsistēmu, kas nav Ubuntu. Canvas LMS instalācija Windows nav atbalstīta.

Pirms sākat instalāciju, iepazīstieties ar mūsu Canvas LMS hostinga pakalpojums. Pakalpojums piedāvā pārvaldītus mākoņserverus ar iepriekš instalētu atvērtā koda Canvas LMS. Jūs varat sākt izmantot LMS bez nepieciešamības iestatīt un pārvaldīt savus serverus.

Canvas LMS instalācijas soļi

Atjaunināt sistēmu

Vispirms mums jāatjaunina serveris un pakotnes uz jaunāko versiju.

# sudo apt update && apt upgrade -y

Instalējiet PostgreSQL datu bāzes serveri

Nākamajā solī mēs instalēsim un konfigurēsim PostgreSQL datu bāzes serveri. Kad es rakstu šo rakstu, postgresql-14 ir pieejams.

# 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

Lejupielādējiet Canvas kodu serverī

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

# sudo apt install git-core

Šajā solī mēs izveidosim atsevišķu sistēmas lietotāju Canvas LMS lietojumprogrammai. Mēs lejupielādēsim Canvas kodu un instalēsim to zem šī konta.

# 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ējiet Canvas LMS atkarības

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ējiet 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ējiet 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ējiet Bundler un 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ējiet Yarn

# sudo npm -g install yarn

Instalējiet NodeJS atkarības

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

Konfigurējiet Canvas LMS

Kopējiet Canvas noklusējuma konfigurācijas failus:

$ 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

Rediģējiet konfigurācijas failus un ievadiet attiecīgās datu bāzes iestatījumus, domēna iestatījumus, izejošā pasta servera iestatījumus utt.

$ 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

Aizpildiet Canvas datu bāzi

Izpildiet db:initial_setup, lai izveidotu datu bāzes tabulas un aizpildītu datu bāzi ar sākotnējiem datiem. Šajā solī jums tiks lūgts izveidot Canvas administratora lietotāju.

$ 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

Ģenerējiet resursus

Izpildiet canvas:compile_assets, lai ģenerētu veidņu failus.

$ 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ējiet Apache tīmekļa serveri un Passenger

Nākamais, mums ir nepieciešams tīmekļa serveris, lai apkalpotu Canvas. Nginx un Apache ir vispopulārākās iespējas. Šajā ceļvedī mēs instalēsim Apache + Passenger.

$ 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

Iespējojiet Passenger Apache moduli un restartējiet Apache.

sudo a2enmod passenger
sudo apache2ctl restart

Pārbaudiet libapache2-mod-passenger instalāciju. Izpildiet zemāk norādītās komandas, lai pārliecinātos, ka passenger un libapache2-mod-passenger modulis ir pareizi instalēti.

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

Papildus iespējot mod_rewrite un mod_ssl apache.

$ sudo a2enmod rewrite 
$ sudo a2enmod ssl

Konfigurējiet Canvas VirtualHost Apache.

Atspējojiet noklusējuma Apache virtuālā hosta konfigurācijas failu un izveidojiet virtuālā hosta konfigurācijas failu canvas lietojumprogrammai.

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

Kopējiet zemāk norādīto konfigurāciju Canvas virtuālā hosta konfigurācijas failā. Aizvietojiet ServerName, ServerAlias, ServerAdmin, DocumentRoot un citas iestatījumus, lai tie atbilstu jūsu domēna nosaukumam un lietojumprogrammas atrašanās vietai.

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

Iespējot Canvas virtuālo hostu

$ sudo a2ensite canvas
$ systemctl reload apache2 

Šajā brīdī jums vajadzētu būt iespējai piekļūt Canvas, izmantojot pārlūkprogrammu. Atveriet savu pārlūkprogrammu un ierakstiet domēna vārdu, kas tika norādīts ServerName.Canvas noklusējuma pieteikšanās lapa vajadzētu parādīties.

canvas lms login page after successful canvas installation
Canvas LMS instalācija pabeigta

 

Turpmākās Canvas iestatīšanas darbības

Ja Canvas pieteikšanās lapa tiek ielādēta pārlūkprogrammā, tas ir labs rādītājs. Bet mums ir jāveic vēl daži pielāgojumi, lai atvērtā koda Canvas mācību pārvaldības sistēma būtu gatava ražošanai.

Instalējiet SSL sertifikātu 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.

Izpildiet šādas instrukcijas komandrindā uz mašīnas, lai pārliecinātos, ka jums ir jaunākā snapd versija.

sudo snap install core; sudo snap refresh core

Noņemiet certbot-auto un jebkuras Certbot OS pakotnes

sudo apt-get remove certbot

Instalējiet Certbot

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

Instalējiet SSL sertifikātu Canvas, izmantojot 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.

SSL certificate is installed for Canvas LMS
SSL sertifikāts Canvas ir instalēts

Instalējiet Redis kešatmiņas serveri

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

Nākamais atgriezieties uz Canvas koda direktoriju un rediģējiet redis konfigurācijas failus.

vim config/cache_store.yml

Pievienojiet šīs rindas zemāk failam:

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

Tagad rediģējiet redis.yml failu un norādiet ceļu uz redis serveri tur.

vim config/redis.yml

Ja Redis ir instalēts uz tā paša servera kā Canvas, tad jūsu konfigurācijai vajadzētu izskatīties aptuveni šādi. Aizvietojiet localhost ar redis servera IP, ja esat instalējis redis uz ārēja servera.

production:
  servers:
    - redis://localhost

Saglabājiet konfigurācijas failu un restartējiet Canvas, lai piemērotu izmaiņas.

Instalējiet QTIMigrationTool priekš Canvas

Iestatiet Canvas automatizētās darbības

Canvas automatizētajām darbībām jādarbojas, lai ģenerētu ziņojumus, sūtītu e-pastus utt. Nākamās komandas konfigurēs un uzsāks Canvas atliktās darbības.

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ējiet RCE API bagātīgajam satura redaktoram

Kļūdu novēršana Canvas instalācijas kļūdās

1. Lietojumprogramma sastapās ar sekojošu kļūdu: Jūs jau esat aktivizējis strscan 3.0.1, bet jūsu Gemfile prasa strscan 3.0.6. Tā kā strscan ir noklusējuma gems, jūs varat vai nu noņemt savu atkarību no tā, vai mēģināt atjaunināt uz jaunāku bundler versiju, kas atbalsta strscan kā noklusējuma gem. (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.

Autortiesības

  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