يعد تثبيت Canvas LMS أمرًا سهلاً إذا قمت بذلك من قبل. ولكن للمرة الأولى قد يكون الأمر صعبا. إذا كانت هذه هي المرة الأولى التي تحاول فيها تثبيت Canvas LMS، فأنت بالتأكيد بحاجة إلى قراءة دليل تثبيت Canvas LMS هذا. ستجد في الداخل الكثير من النصائح المفيدة التي ستساعدك على إعداد خادم إنتاج Canvas LMS.
في هذا الدليل سوف نستخدم أ الخادم الافتراضي الخاص مع أوبونتو 22.04 LTS 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
تكوين قماش 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 والركاب
بعد ذلك نحتاج إلى خادم ويب لخدمة 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 الافتراضي وقم بإنشاء ملف تكوين Virtualhost لتطبيق اللوحة القماشية.
$ sudo unlink /etc/apache2/sites-enabled/000-default.conf $ sudo vim /etc/apache2/sites-available/canvas.conf
انسخ التكوين أدناه إلى ملف تكوين Canvas virtualhost. يستبدل اسم الخادم، 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 في المتصفح، فهذه علامة جيدة. لكننا بحاجة إلى إكمال بعض التعديلات الإضافية لجعل نظام إدارة التعلم 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
قم بتثبيت سيرتبوت
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 for 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 لمحرر المحتوى الغني
استكشاف أخطاء تثبيت اللوحة القماشية وإصلاحها
1. واجه التطبيق الخطأ التالي: لقد قمت بالفعل بتنشيط strscan 3.0.1، ولكن ملف Gemfile الخاص بك يتطلب strscan 3.0.6. نظرًا لأن strscan عبارة عن جوهرة افتراضية، فيمكنك إما إزالة اعتمادك عليها أو محاولة التحديث إلى إصدار أحدث من المجمع الذي يدعم strscan كجوهرة افتراضية. (الجوهرة::خطأ في التحميل)
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






