Kuidas installida Canvas LMS-i Ubuntu 24.04 / 26.04 LTS-le

Canvas LMS-i installimine on lihtne, kui olete seda varem teinud. Kuid esmakordselt võib see olla keeruline. Kui see on teie esimene kord proovida installida Canvas LMS-i, siis peate kindlasti lugema seda Canvas LMS-i installimise juhendit. Seest leiate palju kasulikke näpunäiteid, mis aitavad teil seadistada Canvas LMS-i tootmisserverit.

Selle juhendi jaoks kasutame VPS-i koos Ubuntu 24.04 LTS 64-bit. Serveril on 8 GB RAM ja 4 CPU tuuma. See vastab avatud lähtekoodiga Canvas LMS minimaalsetele riistvaranõuetele. Me ei soovita installida Canvas'i riistvarale, mille spetsifikatsioonid on madalamad, kuna installatsioon võib ebaõnnestuda. Me ei soovita kasutada ka operatsioonisüsteemi, mis ei ole Ubuntu. Canvas LMS-i installimine Windowsis ei ole toetatud.

Enne installatsiooni alustamist vaadake meie Canvas LMS-i hostimisteenus. Teenus pakub hallatavaid pilveservereid, millel on eelnevalt installitud avatud lähtekoodiga Canvas LMS. Saate alustada LMS-i kasutamist ilma oma serverite seadistamise ja haldamise vaevata.

Canvas LMS-i installimise sammud

Uuendage süsteemi

Esiteks peaksime serveri ja paketid uuendama uusimale versioonile.

# sudo apt update && apt upgrade -y

Installige PostgreSQL andmebaasi server

Järgmisena installime ja konfigureerime PostgreSQL andmebaasi serveri. Kui ma seda artiklit kirjutan, on saadaval postgresql-14.

# 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

Laadige Canvas kood serverisse

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

# sudo apt install git-core

Selles etapis loome Canvas LMS rakenduse jaoks eraldi süsteemi kasutaja. Laadime Canvas koodi alla ja installime selle selle konto alla.

# 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

Installige Canvas LMS sõltuvused

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

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

Installi 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

Installi 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

Installi Yarn

# sudo npm -g install yarn

Installi NodeJS sõltuvused

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

Konfigureeri Canvas LMS

Kopeeri Canvas vaikimisi konfiguratsioonifailid:

$ 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

Muuda konfiguratsioonifailid ja sisesta asjakohased andmebaasi seaded, domeeni seaded, väljuva posti serveri seaded 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äida Canvas andmebaas

Käivita db:initial_setup, et luua andmebaasi tabelid ja täita andmebaas algandmetega. Selle sammu jooksul palutakse sul luua Canvas administraatori kasutaja.

$ 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

Genereeri varad

Käivita canvas:compile_assets, et genereerida mallifailid.

$ 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

Paigalda Apache veebiserver ja Passenger

Järgmine, vajame veebiserverit, et serveerida Canvas. Nginx ja Apache on kõige populaarsemad valikud. Selle juhendi jaoks paigaldame 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

Luba Passenger Apache moodul ja taaskäivita Apache.

sudo a2enmod passenger
sudo apache2ctl restart

Kinnitage, et libapache2-mod-passenger on installitud. Käivitage allolevad käsud, et veenduda, et passenger ja libapache2-mod-passenger moodul on õigesti installitud.

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

Lisaks lubage mod_rewrite ja mod_ssl apache jaoks.

$ sudo a2enmod rewrite 
$ sudo a2enmod ssl

Konfigureerige Canvas VirtualHost Apache'is

Keelake vaikimisi Apache'i virtuaalhosti konfiguratsioonifail ja looge virtuaalhosti konfiguratsioonifail canvas rakenduse jaoks.

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

Kopeerige allolev konfiguratsioon Canvas virtuaalhosti konfiguratsioonifaili. Asendage ServerName, ServerAlias, ServerAdmin, DocumentRoot ja muud seaded, et need vastaksid teie domeeninime ja rakenduse asukohale.

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

Luba Canvas virtuaalhost

$ sudo a2ensite canvas
$ systemctl reload apache2 

Sellel hetkel peaksite saama Canvas'i brauseri kaudu juurde pääseda. Avage oma brauser ja tippige domeeninimi, mis on määratud ServerName. Canvas'i vaikimisi sisselogimisleht peaks ilmuma.

canvas lms login page after successful canvas installation
Canvas LMS installatsioon lõpetatud

 

Edasised Canvas'i seadistamise sammud

Kui Canvas'i sisselogimisleht on brauseris laaditud, on see hea märk. Kuid peame veel mõned kohandused tegema, et avatud lähtekoodiga Canvas'i õppehaldussüsteem oleks tootmiseks valmis.

Installige Canvas'i jaoks SSL-sertifikaat

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.

Käivita järgmised juhised käsureal masinal, et veenduda, et sul on uusim versioon snapd-st.

sudo snap install core; sudo snap refresh core

Eemalda certbot-auto ja kõik Certboti OS paketid

sudo apt-get remove certbot

Paigalda Certbot

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

Paigalda SSL-sertifikaat Canvas'e jaoks kasutades certbot'i

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
Canvas'e SSL-sertifikaat on paigaldatud

Paigalda Redis'i vahemälu server

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

Järgmine minge tagasi Canvas koodi katalooge ja muutke redis konfiguratsioonifaile.

vim config/cache_store.yml

Lisage allolevad read faili:

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

Nüüd muutke redis.yml faili ja seadke sinna redis serveri tee.

vim config/redis.yml

Kui Redis on installitud samale serverile kui Canvas, siis peaks teie konfiguratsioon olema midagi sellist. Asendage localhost redis serveri IP-ga, kui installisite redis'i välisele serverile.

production:
  servers:
    - redis://localhost

Salvestage konfiguratsioonifail ja taaskäivitage Canvas muudatuste rakendamiseks.

Installige QTIMigrationTool Canvas'i jaoks

Seadistage Canvas automaatsed tööd

Canvas automaatsed tööd peaksid töötama, et genereerida aruandeid, saata e-kirju jne. Järgmised käsud konfigureerivad ja käivitavad Canvas'i viivitusega tööd.

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

Paigaldage RCE API rikkaliku sisu redaktori jaoks

Kangastiku paigaldusvigade tõrkeotsing

1. Rakendus kohtas järgmist viga: Olete juba aktiveerinud strscan 3.0.1, kuid teie Gemfile nõuab strscan 3.0.6. Kuna strscan on vaikimisi gem, saate kas eemaldada oma sõltuvuse sellest või proovida uuendada uuemale versioonile bundlerist, mis toetab strscan'i vaikimisi gemina. (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.

Autoriõigused

  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