CentOS 8'de Nginx ile Moodle Öğrenme Platformu Nasıl Kurulur


Moodle, güçlü çevrimiçi öğrenme siteleri oluşturmaya yönelik dünyanın en popüler öğrenme yönetim sistemidir. Aralarından seçim yapabileceğiniz bir dizi etkinlik ve eğitim aracı içerir, değerlendirme yönetimini destekler ve özel sertifikalarla birlikte gönderilir. Ayrıca güçlü bir video konferans aracıyla öğrencilerinizle gerçek zamanlı iletişim kurmanıza olanak tanır. Ayrıca mobil kullanıma hazır olduğundan öğrencileriniz mobil cihazlarından öğrenebilir.

Moodle Sunucu Gereksinimleri

  • İşletim Sistemi: LEMP yığınının kurulu olduğu minimum CentOS 8 veya RHEL 8 sunucusu kurulumu.
  • Disk Alanı: Moodle için 200 MB ve 5 GB muhtemelen içerik depolamak için gerçekçi bir minimum değerdir.
  • İşlemci: 1 GHz (min), 2 GHz çift çekirdekli veya daha fazlası önerilir.
  • Bellek: 512 MB (dak), 1 GB veya daha fazlası önerilir. Büyük bir üretim sunucusunda 8GB'tan fazla olması muhtemeldir.

Bu sayfada

  • Moodle Web Sitesi için Alan Adı DNS Kaydı Oluşturma
  • Moodle Öğrenme Platformunun CentOS 8 Sunucusuna Kurulumu
  • NGINX'i Moodle Web Sitesine Hizmet Verecek Şekilde Yapılandırma
  • Web Installer ile Moodle Kurulumunu Tamamlayın
  • Let's Encrypt Kullanarak Moodle Sitesinde HTTPS'yi Etkinleştirin

Moodle Web Sitesi için Alan Adı DNS Kaydı Oluşturma

1. Kullanıcıların Moodle çevrimiçi öğrenim sitesine erişmek için kullanacakları bir alt alan adı oluşturarak başlayın. Örneğin alan adınız testprojects.me ise learning.testprojects.me adında bir alt alan adı oluşturabilirsiniz.

Alan adınızın gelişmiş DNS ayarlarını açın ve aşağıdaki resimde gösterildiği gibi bir A kaydı ekleyin.

CentOS 8 Sunucusuna Moodle Kurulumu

2. Moodle'ı kurmadan önce, sunucunuzda gerekli PHP uzantılarının bulunduğundan emin olun, bunları yüklemek için aşağıdaki komutu çalıştırabilirsiniz:

dnf install php-common php-iconv php-curl php-mbstring php-xmlrpc php-soap php-zip php-gd php-xml php-intl php-json libpcre3 libpcre3-dev graphviz aspell ghostscript clamav

3. Daha sonra Moodle uygulaması için aşağıdaki gibi bir veritabanı oluşturun.

mysql -u root -p

Daha sonra veritabanını, veritabanı kullanıcısını oluşturun ve kullanım için güvenli bir şifre oluşturun.

MariaDB [(none)]> CREATE DATABASE moodledb;
MariaDB [(none)]> GRANT SELECT,INSERT,UPDATE,DELETE,CREATE,CREATE TEMPORARY TABLES,DROP,INDEX,ALTER ON moodledb.* TO 'moodleadmin'@'localhost' IDENTIFIED BY 'p@zzwd0L2';
MariaDB [(none)]> FLUSH PRIVILEGES;
MariaDB [(none)]> exit

4. Şimdi resmi moodle projesi web sitesinden Moodle'ın en son sürümünü (bu yazının yazıldığı sırada 3.9) indirin, arşiv dosyasını çıkarın ve bunu webroot (/var/www/html/) dizininize taşıyın, ardından web sunucusunun Moodle dizinine erişmesine izin vermek için uygun izinleri ve sahipliği aşağıdaki gibi ayarlayın.

wget -c https://download.moodle.org/download.php/direct/stable39/moodle-latest-39.tgz
tar -xzvf  moodle-latest-39.tgz
mv moodle /var/www/html/
chmod 775 -R /var/www/html/moodle
chown nginx:nginx -R /var/www/html/moodle

5. Ardından, Moodle arayüzü tarafından yüklenen veya oluşturulan dosyaların konumu olan moodledata dizinini oluşturun, ardından uygun izinleri atayın ve web sunucusunun okuma ve yazma erişimine izin vermek için sahiplik:


mkdir -p /var/www/html/moodledata
chmod 770 -R /var/www/html/moodledata
chown :nginx -R /var/www/html/moodledata

6. Daha sonra, Moodle kurulum dizinine gidin ve config.dist.php< örneğinden bir config.php dosyası oluşturun. Sağlanan dosyasını kullanın, ardından Moodle platformunuz için veritabanı bağlantı parametreleri, site konumu ve moodledata dizinini nerede bulabileceği gibi bazı önemli ayarları yapılandırmak için düzenlemek üzere açın:

cd /var/www/html/moodle/
cp config-dist.php config.php
vim config.php

Doğru veri tabanı türünü, doğru veri tabanı ana bilgisayarını, veri tabanı adını ve veri tabanı kullanıcısını ve kullanıcı parolasını ayarlayın.

$CFG->dbtype    = 'mariadb';      // 'pgsql', 'mariadb', 'mysqli', 'sqlsrv' or 'oci'
$CFG->dblibrary = 'native';     // 'native' only at the moment
$CFG->dbhost    = 'localhost';  // eg 'localhost' or 'db.isp.com' or IP
$CFG->dbname    = 'moodledb';     // database name, eg moodle
$CFG->dbuser    = 'moodleadmin';   // your database username
$CFG->dbpass    = 'p@zzwd0L2';   // your database password
$CFG->prefix    = 'mdl_';       // prefix to use for all table names

7. Ayrıca Moodle sitenize erişmek için kullanılan URL'yi de ayarlayın; bu, Moodle web dosyalarınızın bulunduğu wwwroot'un konumunu belirtir ve ayrıca veri kökü (moodledata dizini):

$CFG->wwwroot   = 'http://learning.testprojects.me';
$CFG->dataroot  = '/var/www/html/moodledata';

NGINX'i Moodle Web Sitesine Hizmet Verecek Şekilde Yapılandırma

8. Bu bölümde, NGINX'i Moodle uygulamanıza hizmet verecek şekilde yapılandırmanız gerekir. Bunun için NGINX konfigürasyonunda gösterildiği gibi bir sunucu bloğu oluşturmanız gerekir.

vim /etc/nginx/conf.d/moodle.conf

Aşağıdaki yapılandırmayı kopyalayıp sunucu bloğu yapılandırma dosyasına yapıştırın. Sunucu adını yukarıda oluşturulan alt alan adınızla değiştirin; fastcgi_pass php-fpm'yi işaret etmelidir (not CentOS 8'de PHP-FPM'nin /etc/nginx/conf.d/ dosyasında tanımlanan adresi kullanarak FastCGI isteklerini kabul ettiği php-fpm.conf yapılandırması).

server{
   listen 80;
    server_name learning.testprojects.me;
    root        /var/www/html/moodle;
    index       index.php;

    location / {
        try_files $uri $uri/ /index.php?$query_string;
    }

    location ~ ^(.+\.php)(.*)$ {
        fastcgi_split_path_info ^(.+\.php)(.*)$;
        fastcgi_index           index.php;
        fastcgi_pass            php-fpm;
        include                 /etc/nginx/mime.types;
        include                 fastcgi_params;
        fastcgi_param           PATH_INFO       $fastcgi_path_info;
        fastcgi_param           SCRIPT_FILENAME $document_root$fastcgi_script_name;
}
}

Dosyayı kaydedin ve kapatın.

9. Ardından NGINX yapılandırmasının doğruluğunu kontrol edin, Tamam ise nginx'i yeniden başlatın ve Son değişiklikleri uygulamak için php-fpm hizmetleri:

nginx -t
systemctl restart nginx
systemctl restart php-fpm

10. Sisteminizde SELinux'u etkinleştirdiyseniz, Moodle web dosyalarına erişim için doğru bağlamı ayarlamak amacıyla aşağıdaki komutları çalıştırın. sunucu:

setsebool -P httpd_can_network_connect on
chcon -R --type httpd_sys_rw_content_t /var/www/html

11. Ayrıca, NGINX trafiğine izin vermek için güvenlik duvarında HTTP ve HTTPS hizmetlerinin açık olduğundan emin olun. Web sunucusu:

firewall-cmd --permanent --zone=public --add-service=http 
firewall-cmd --permanent --zone=public --add-service=https
firewall-cmd --reload

Web Installer ile Moodle Kurulumunu Tamamlayın

12. Moodle web yükleyicisine erişmek için web tarayıcınızı açın ve yukarıda oluşturduğunuz alt alan adını kullanarak gezinin:

http://learning.testprojects.me

Hoş geldiniz sayfası yüklendikten sonra şartlar ve koşulları okuyun ve Devam'ı tıklayın.

13. Daha sonra web yükleyicisi, sisteminizin belirtilen sürümdeki bir Moodle sitesini çalıştırma gereksinimlerini karşılayıp karşılamadığını kontrol edecektir. Daha fazla bilgi görüntülemek için aşağı kaydırabilirsiniz.

14. Yükleyici HTTPS'nin etkinleştirilmemesinden şikayetçi olacaktır, bu hatayı şimdilik görmezden gelin (sonraki bölümde, Moodle'da HTTPS'nin nasıl etkinleştirileceğini göstereceğiz) ve Web dosyalarının gerçek kurulumunu başlatmak için Devam.

15. Şimdi yükleyici, aşağıdaki ekran görüntüsünde gösterildiği gibi Moodle dosyalarının gerçek kurulumunu başlatacaktır. Tamamlandığında Devam'ı tıklayın.

16. Bir sonraki adımda, kullanıcı adınızı, şifrenizi, adınızı, soyadınızı ve e-posta adresinizi güncelleyerek Moodle sitenizin yönetici hesabını güncellemeniz gerekir. Ardından sayfayı aşağı kaydırın ve Profili Güncelle'yi tıklayın.

17. Ardından Moodle sitesinin ön sayfa ayarlarını güncelleyin. Daha sonra Moodle sitenizi kullanmaya başlamak için aşağı kaydırın ve Güncelle'yi tıklayın.

18. Daha sonra ekrandaki talimatları izleyerek sitenizi kaydetmeniz gerekir. Kontrol Paneline tıklayarak kontrol paneline gidebilirsiniz.

Let's Encrypt Kullanarak Moodle Sitesinde HTTPS Kurulumu

HTTPS, kullanıcılarınız ile Moodle uygulaması (özellikle Moodle'ı alan NGINX web sunucusu) arasında güvenli iletişim sağlamak için sitenize ilk güvenlik katmanını ekler. talep eder ve yanıtları iletir).

Ticari bir CA'dan SSL/TLS sertifikası satın alabilir veya ücretsiz olan ve tüm modern web tarayıcıları tarafından tanınan Let's Encrypt'i kullanabilirsiniz. Bu kılavuz için Let's Encrypt'i kullanacağız.

19. Let's Encrypt Sertifika dağıtımı, certbot aracı kullanılarak otomatik olarak yönetilir. certbot'u ve diğer gerekli paketleri aşağıdaki komutla yükleyebilirsiniz:

dnf install certbot python3-certbot-nginx

20. Ardından bir Let's Encrypt sertifikası almak için aşağıdaki komutu çalıştırın ve Certbot'un NGINX yapılandırmanızı otomatik olarak sunacak şekilde düzenlemesini sağlayın (aynı zamanda yapılandıracaktır) HTTP otomatik olarak HTTPS'ye yönlendirilecektir).

certbot --nginx

21. Ardından, Let's Encrypt SSL/TLS sertifikasının otomatik olarak yenilenmesini etkinleştirmek için aşağıdaki komutu çalıştırın:

echo "0 0,12 * * * root python3 -c 'import random; import time; time.sleep(random.random() * 3600)' && certbot renew -q" | sudo tee -a /etc/crontab > /dev/null

22. Ardından, HTTPS kullanmaya başlamak için Moodle yapılandırmanızı güncelleyin.

vim /var/www/html/moodle/config.php

wwwroot URL'sini HTTP'den HTTPS'ye değiştirin:

$CFG->wwwroot   = 'https://learning.testprojects.me';

23. Son olarak, Moodle sitenizin artık HTTPS'de çalıştığını doğrulayın.

Şimdilik bu kadar! Yeni öğrenme platformunuzu çalıştırmaya yönelik daha fazla bilgi ve yapılandırma seçenekleri için Moodle web sitesine gidin ve resmi belgeleri okuyun.