Ubuntu 22.04 पर कैनवस एलएमएस कैसे स्थापित करें

यदि आपने इसे पहले किया है तो कैनवस एलएमएस इंस्टालेशन आसान है। लेकिन पहली बार यह कठिन हो सकता है. यदि आप पहली बार कैनवास एलएमएस स्थापित करने का प्रयास कर रहे हैं तो आपको निश्चित रूप से इस कैनवास एलएमएस इंस्टॉलेशन गाइड को पढ़ने की जरूरत है। अंदर आपको बहुत सारी उपयोगी युक्तियाँ मिलेंगी जो आपको कैनवास एलएमएस उत्पादन सर्वर स्थापित करने में मदद करेंगी।

इस गाइड के लिए हम एक का उपयोग करेंगे वी.पी.एस साथ उबंटू 22.04 एलटीएस 64 बिट. सर्वर में 8GB RAM और 4 CPU कोर हैं। यह ओपन सोर्स कैनवस एलएमएस के लिए न्यूनतम हार्डवेयर आवश्यकताओं को पूरा करता है। हम कम विशिष्टताओं वाले हार्डवेयर पर कैनवस स्थापित करने की अनुशंसा नहीं करते हैं क्योंकि इंस्टॉलेशन विफल हो सकता है। हम उबंटू के अलावा अन्य ओएस का उपयोग करने की भी अनुशंसा नहीं करते हैं। विंडोज़ पर कैनवस एलएमएस इंस्टालेशन समर्थित नहीं है।

इंस्टालेशन शुरू करने से पहले हमारी जाँच करें कैनवस एलएमएस होस्टिंग सेवा. यह सेवा पहले से इंस्टॉल ओपन-सोर्स कैनवस एलएमएस के साथ प्रबंधित क्लाउड सर्वर प्रदान करती है। आप स्वयं के सर्वर को स्थापित करने और प्रबंधित करने की परेशानी के बिना एलएमएस का उपयोग शुरू कर सकते हैं।

कैनवास एलएमएस स्थापना चरण

सिस्टम को अपडेट करें

सबसे पहले हमें सर्वर और पैकेज को नवीनतम संस्करण में अपडेट करना चाहिए।

# sudo apt update && apt upgrade -y

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

सर्वर पर कैनवास कोड डाउनलोड करें

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

# sudo apt install git-core

इस चरण पर हम कैनवास एलएमएस एप्लिकेशन के लिए एक अलग सिस्टम उपयोगकर्ता बनाएंगे। हम कैनवास कोड डाउनलोड करेंगे और इसे इस खाते के अंतर्गत इंस्टॉल करेंगे।

# 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

कैनवास एलएमएस निर्भरताएँ स्थापित करें

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

बंडलर और रूबी रत्न स्थापित करें

# 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

कैनवास एलएमएस कॉन्फ़िगर करें

कैनवास डिफ़ॉल्ट कॉन्फ़िगरेशन फ़ाइलें कॉपी करें:

$ 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

कैनवास डेटाबेस आबाद करें

डेटाबेस तालिकाएँ बनाने और प्रारंभिक डेटा के साथ डेटाबेस को पॉप्युलेट करने के लिए db:initial_setup चलाएँ। इस चरण पर आपसे कैनवास प्रशासक उपयोगकर्ता बनाने के लिए कहा जाएगा।

$ 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

संपत्ति उत्पन्न करें

टेम्प्लेट फ़ाइलें जनरेट करने के लिए कैनवास चलाएँ: 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

अपाचे वेब सर्वर और पैसेंजर स्थापित करें

आगे हमें कैनवस की सेवा के लिए एक वेबसर्वर की आवश्यकता है। Nginx और Apache सबसे लोकप्रिय विकल्प हैं। हम इस गाइड के लिए अपाचे पैसेंजर स्थापित करने जा रहे हैं।

$ 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

पैसेंजर अपाचे मॉड्यूल को सक्षम करें और अपाचे को पुनरारंभ करें।

sudo a2enmod passenger
sudo apache2ctl restart

libapache2-mod-passenger की स्थापना को मान्य करें। यह सुनिश्चित करने के लिए नीचे दिए गए आदेश चलाएँ कि यात्री और libapache2-मॉड-यात्री मॉड्यूल सही ढंग से स्थापित हैं।

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

इसके अतिरिक्त अपाचे के लिए mod_rewrite और mod_ssl सक्षम करें।

$ sudo a2enmod rewrite 
$ sudo a2enmod ssl

अपाचे में कैनवास वर्चुअलहोस्ट कॉन्फ़िगर करें

डिफ़ॉल्ट अपाचे वर्चुअलहोस्ट कॉन्फ़िगरेशन फ़ाइल को अक्षम करें और कैनवास एप्लिकेशन के लिए वर्चुअलहोस्ट कॉन्फ़िगरेशन फ़ाइल बनाएं।

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

नीचे दिए गए कॉन्फ़िगरेशन को कैनवास वर्चुअलहोस्ट कॉन्फ़िगरेशन फ़ाइल में कॉपी करें। प्रतिस्थापित करें सर्वरनाम, सर्वरएलियास, सर्वरएडमिन, डॉक्यूमेंटरूट और आपके डोमेन नाम और ऐप स्थान से मेल खाने के लिए अन्य सेटिंग्स।

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

कैनवास वर्चुअल होस्ट सक्षम करें

$ sudo a2ensite canvas
$ systemctl reload apache2 

इस बिंदु पर आपको ब्राउज़र के माध्यम से कैनवास तक पहुंचने में सक्षम होना चाहिए। अपना ब्राउज़र खोलें और उसमें निर्दिष्ट डोमेन नाम टाइप करें सर्वरनाम. कैनवास डिफ़ॉल्ट लॉगिन पेज दिखना चाहिए.

canvas lms login page after successful canvas installation
कैनवस एलएमएस इंस्टालेशन पूरा हुआ

 

आगे कैनवास सेटअप चरण

यदि कैनवास लॉगिन पेज ब्राउज़र में लोड है तो यह एक अच्छा संकेत है। लेकिन ओपन सोर्स कैनवस लर्निंग मैनेजमेंट सिस्टम को उत्पादन के लिए तैयार करने के लिए हमें कुछ और बदलाव पूरे करने होंगे।

कैनवास के लिए एसएसएल प्रमाणपत्र स्थापित करें

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.

यह सुनिश्चित करने के लिए कि आपके पास स्नैपडील का नवीनतम संस्करण है, मशीन पर कमांड लाइन पर निम्नलिखित निर्देशों को निष्पादित करें।

sudo snap install core; sudo snap refresh core

सर्टिफिकेट-ऑटो और किसी भी सर्टिफिकेट ओएस पैकेज को हटा दें

sudo apt-get remove certbot

सर्टबॉट स्थापित करें

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

Certbot का उपयोग करके कैनवास के लिए SSL प्रमाणपत्र स्थापित करें

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 प्रमाणपत्र स्थापित है

रेडिस कैश सर्वर स्थापित करें

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

इसके बाद कैनवास कोड निर्देशिका पर वापस जाएं और रेडिस कॉन्फ़िगरेशन फ़ाइलों को संपादित करें।

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

यदि रेडिस कैनवस के समान सर्वर पर स्थापित है तो आपका कॉन्फ़िगरेशन कुछ इस तरह होना चाहिए। यदि आपने बाहरी सर्वर पर रेडिस स्थापित किया है तो लोकलहोस्ट को रेडिस सर्वर आईपी से बदलें।

production:
  servers:
    - redis://localhost

कॉन्फ़िगरेशन फ़ाइल सहेजें और परिवर्तन लागू करने के लिए कैनवास को पुनरारंभ करें।

कैनवास के लिए QTIMigrationTool स्थापित करें

सेटअप कैनवास स्वचालित नौकरियां

रिपोर्ट तैयार करने, ईमेल भेजने आदि के लिए कैनवास स्वचालित नौकरियां चलनी चाहिए। अगले आदेश कैनवास विलंबित नौकरियों को कॉन्फ़िगर और प्रारंभ करेंगे।

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

रिच कंटेंट एडिटर के लिए आरसीई एपीआई स्थापित करें

कैनवास स्थापना त्रुटियों का समस्या निवारण

1. एप्लिकेशन में निम्नलिखित त्रुटि आई: आपने पहले ही strscan 3.0.1 सक्रिय कर दिया है, लेकिन आपके Gemfile को strscan 3.0.6 की आवश्यकता है। चूंकि स्ट्रस्कैन एक डिफ़ॉल्ट रत्न है, आप या तो इस पर अपनी निर्भरता हटा सकते हैं या बंडलर के एक नए संस्करण में अपडेट करने का प्रयास कर सकते हैं जो डिफ़ॉल्ट रत्न के रूप में स्ट्रस्कैन का समर्थन करता है। (रत्न::लोडत्रुटि)

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.

क्रेडिट

  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