Установить Canvas LMS несложно, если вы сделали это раньше. Но в первый раз это может быть сложно. Если вы впервые пытаетесь установить Canvas LMS, вам обязательно необходимо прочитать это руководство по установке Canvas LMS. Внутри вы найдете множество полезных советов, которые помогут вам настроить производственный сервер Canvas LMS.
Для этого руководства мы будем использовать VPS с Убунту 22.04 ЛТС 64 бит. Сервер имеет 8 ГБ оперативной памяти и 4 ядра процессора. Он соответствует минимальным требованиям к оборудованию для Canvas LMS с открытым исходным кодом. Мы не рекомендуем устанавливать Canvas на оборудование с более низкими характеристиками, так как установка может завершиться неудачно. Мы также не рекомендуем использовать другие ОС, кроме 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
Установить Руби 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 по умолчанию и создайте файл конфигурации виртуального хоста для приложения Canvas.
$ sudo unlink /etc/apache2/sites-enabled/000-default.conf $ sudo vim /etc/apache2/sites-available/canvas.conf
Скопируйте приведенную ниже конфигурацию в файл конфигурации виртуального хоста Canvas. Заменить имя_сервера, псевдоним_сервера, администратор_сервера, корень_документа и другие настройки, соответствующие вашему доменному имени и местоположению приложения.
<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 по умолчанию.

Дальнейшие шаги по настройке холста
Если страница входа в 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.
sudo apt-get remove 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, ваша конфигурация должна быть примерно такой. Замените localhost на IP-адрес сервера Redis, если вы установили Redis на внешний сервер.
production: servers: - redis://localhost
Сохраните файл конфигурации и перезапустите Canvas, чтобы применить изменения.
Установите QTIMigrationTool для Canvas.
Настройка автоматизированных заданий Canvas
Автоматические задания 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 для редактора расширенного контента.
Устранение ошибок установки Canvas
1. Приложение обнаружило следующую ошибку: Вы уже активировали strscan 3.0.1, но для вашего Gemfile требуется strscan 3.0.6. Поскольку strscan является драгоценным камнем по умолчанию, вы можете либо удалить зависимость от него, либо попробовать обновиться до более новой версии упаковщика, которая поддерживает 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






