Canvas LMS-ის ინსტალაცია მარტივია, თუ ამას ადრე გააკეთებდით. მაგრამ პირველად შეიძლება რთული იყოს. თუ პირველად ცდილობთ დააინსტალიროთ Canvas LMS, აუცილებლად უნდა წაიკითხოთ ეს Canvas LMS ინსტალაციის სახელმძღვანელო. შიგნით ნახავთ უამრავ სასარგებლო რჩევას, რომელიც დაგეხმარებათ დააყენოთ Canvas LMS წარმოების სერვერი.
ამ სახელმძღვანელოსთვის ჩვენ გამოვიყენებთ ა VPS თან Ubuntu 22.04 LTS 64 ბიტიანი. სერვერს აქვს 8 GB ოპერატიული მეხსიერება და 4 CPU ბირთვი. ის აკმაყოფილებს მინიმალურ ტექნიკის მოთხოვნებს ღია კოდის Canvas LMS-ისთვის. ჩვენ არ გირჩევთ Canvas-ის დაყენებას უფრო დაბალი სპეციფიკაციების მქონე მოწყობილობაზე, რადგან ინსტალაცია შეიძლება ვერ მოხერხდეს. ჩვენ ასევე არ გირჩევთ გამოიყენოთ OS გარდა Ubuntu. Canvas LMS ინსტალაცია Windows-ზე არ არის მხარდაჭერილი.
სანამ ინსტალაციას დაიწყებთ, შეამოწმეთ ჩვენი Canvas LMS ჰოსტინგის სერვისი. სერვისი გთავაზობთ მართულ ღრუბლოვან სერვერებს წინასწარ დაინსტალირებული ღია კოდის Canvas LMS-ით. თქვენ შეგიძლიათ დაიწყოთ LMS-ის გამოყენება საკუთარი სერვერების დაყენებისა და მართვის გარეშე.
Canvas LMS ინსტალაციის ნაბიჯები
განაახლეთ სისტემა
უპირველეს ყოვლისა, ჩვენ უნდა განვაახლოთ სერვერი და პაკეტები უახლესი ვერსიით.
# sudo apt update && apt upgrade -y
დააინსტალირეთ PostgreSQL მონაცემთა ბაზის სერვერი
შემდეგ ჩვენ ვაინსტალირებთ და ვაკონფიგურირებთ PostgreSQL მონაცემთა ბაზის სერვერს. როდესაც ვწერ ამ სტატიას, 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
ჩამოტვირთეთ Canvas კოდი სერვერზე
We will use Git to get Canvas code. Install Git if you don’t have it already.
# sudo apt install git-core
ამ ეტაპზე ჩვენ შევქმნით ცალკე სისტემის მომხმარებელს Canvas LMS აპლიკაციისთვის. ჩვენ გადმოვწერთ Canvas-ის კოდს და დავაინსტალირებთ ამ ანგარიშის ქვეშ.
# 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
დააინსტალირეთ 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
დააინსტალირეთ 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++
დააინსტალირეთ 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
დააინსტალირეთ Bundler და 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
დააინსტალირეთ ნართი
# sudo npm -g install yarn
დააინსტალირეთ NodeJS დამოკიდებულებები
# su - canvas $ cd /home/canvas/public_html $ yarn install
Canvas LMS-ის კონფიგურაცია
დააკოპირეთ 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
შეცვალეთ კონფიგურაციის ფაილები და შეიყვანეთ მონაცემთა ბაზის შესაბამისი პარამეტრები, დომენის პარამეტრები, გამავალი ფოსტის სერვერის პარამეტრები და ა.შ.
$ 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
შეავსეთ Canvas მონაცემთა ბაზა
გაუშვით db:initial_setup, რათა შექმნათ მონაცემთა ბაზის ცხრილები და შეავსოთ მონაცემთა ბაზა საწყისი მონაცემებით. ამ ეტაპზე თქვენ მოგეთხოვებათ შექმნათ 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
აქტივების გენერირება
გაუშვით canvas:compile_assets შაბლონის ფაილების გენერირებისთვის.
$ 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
დააინსტალირეთ Apache ვებ სერვერი და Passenger
შემდეგ ჩვენ გვჭირდება ვებ სერვერი Canvas-ის მოსამსახურებლად. Nginx და Apache ყველაზე პოპულარული ვარიანტებია. ჩვენ ვაპირებთ დააინსტალიროთ 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
ჩართეთ Passenger Apache მოდული და გადატვირთეთ Apache.
sudo a2enmod passenger sudo apache2ctl restart
დაადასტურეთ libapache2-mod-passenger ინსტალაცია. გაუშვით ქვემოთ მოცემული ბრძანებები, რათა დარწმუნდეთ, რომ სამგზავრო და libapache2-mod-passenger მოდული სწორად არის დაინსტალირებული.
sudo /usr/bin/passenger-config validate-install sudo /usr/sbin/passenger-memory-stats
დამატებით ჩართეთ mod_rewrite და mod_ssl apache-სთვის.
$ sudo a2enmod rewrite $ sudo a2enmod ssl
Canvas VirtualHost-ის კონფიგურაცია Apache-ში
გამორთეთ ნაგულისხმევი Apache virtualhost-ის კონფიგურაციის ფაილი და შექმენით ვირტუალური მასპინძლის კონფიგურაციის ფაილი ტილო აპლიკაციისთვის.
$ sudo unlink /etc/apache2/sites-enabled/000-default.conf $ sudo vim /etc/apache2/sites-available/canvas.conf
დააკოპირეთ ქვემოთ მოცემული კონფიგურაცია Canvas virtualhost-ის კონფიგურაციის ფაილში. ჩანაცვლება ServerName, ServerAlias, ServerAdmin, DocumentRoot და სხვა პარამეტრები, რომლებიც ემთხვევა თქვენი დომენის სახელსა და აპის მდებარეობას.
<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>
ჩართეთ Canvas ვირტუალური ჰოსტი
$ sudo a2ensite canvas
$ systemctl reload apache2
ამ ეტაპზე თქვენ უნდა გქონდეთ წვდომა ტილოზე ბრაუზერის საშუალებით. გახსენით თქვენი ბრაუზერი და ჩაწერეთ დომენის სახელი, რომელშიც მითითებულია სერვერის სახელი. Canvas-ის ნაგულისხმევი შესვლის გვერდი უნდა გამოჩნდეს.

ტილოს დაყენების შემდგომი ნაბიჯები
თუ Canvas-ის შესვლის გვერდი ჩატვირთულია ბრაუზერში, ეს კარგი ნიშანია. მაგრამ ჩვენ გვჭირდება კიდევ რამდენიმე შესწორება, რათა ღია კოდის კანვას სწავლის მართვის სისტემა მზად იყოს წარმოებისთვის.
დააინსტალირეთ SSL სერთიფიკატი 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.
შეასრულეთ შემდეგი ინსტრუქციები აპარატის ბრძანების სტრიქონზე, რათა დარწმუნდეთ, რომ გაქვთ snapd-ის უახლესი ვერსია.
sudo snap install core; sudo snap refresh core
წაშალეთ certbot-auto და ნებისმიერი Certbot OS პაკეტი
sudo apt-get remove certbot
დააინსტალირეთ Certbot
sudo snap install --classic certbot sudo ln -s /snap/bin/certbot /usr/bin/certbot
დააინსტალირეთ SSL სერთიფიკატი Canvas-ისთვის 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.

დააინსტალირეთ 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
შემდეგ დაბრუნდით Canvas კოდების დირექტორიაში და დაარედაქტირეთ redis კონფიგურაციის ფაილები.
vim config/cache_store.yml
დაამატეთ ქვემოთ მოცემული ხაზები ფაილში:
test: cache_store: redis_cache_store development: cache_store: redis_cache_store production: cache_store: redis_cache_store
ახლა შეცვალეთ redis.yml ფაილი და დააყენეთ გზა იქ redis სერვერამდე.
vim config/redis.yml
თუ Redis დაინსტალირებულია იმავე სერვერზე, როგორც Canvas, მაშინ თქვენი კონფიგურაცია უნდა იყოს მსგავსი. შეცვალეთ ლოკალჰოსტი redis სერვერის IP-ით, თუ თქვენ დააინსტალირეთ redis გარე სერვერზე.
production: servers: - redis://localhost
შეინახეთ კონფიგურაციის ფაილი და გადატვირთეთ Canvas ცვლილებების გამოსაყენებლად.
დააინსტალირეთ QTIMIgrationTool ტილოსთვის
Canvas Automated სამუშაოების დაყენება
Canvas-ის ავტომატიზირებული სამუშაოები უნდა იყოს გაშვებული, რათა გენერიროთ ანგარიშები, გაგზავნოთ ელფოსტა და ა.შ. შემდეგი ბრძანებები დააკონფიგურირებს და დაიწყებს 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
დააინსტალირეთ RCE API მდიდარი კონტენტის რედაქტორისთვის
ტილოზე ინსტალაციის შეცდომების აღმოფხვრა
1. აპლიკაციას შეექმნა შემდეგი შეცდომა: თქვენ უკვე გაააქტიურეთ strscan 3.0.1, მაგრამ თქვენი Gemfile მოითხოვს strscan 3.0.6. ვინაიდან strscan ნაგულისხმევი ძვირფასი ქვაა, შეგიძლიათ ან გააუქმოთ მასზე დამოკიდებულება ან სცადოთ განახლება Bundler-ის უფრო ახალ ვერსიაზე, რომელიც მხარს უჭერს strscan-ს, როგორც ნაგულისხმევ ძვირფას ქვას. (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.
კრედიტები
- 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






