CentOS 8 -ב Nginx םע Moodle תדימל תמרופטלפ ןיקתהל דציכ


Moodle םהלש םידיינה םירישכמהמ דומלל םילוכי ךלש םידימלתהש ךכ ,דיינל ןכומ אוה ,הזמ ץוח .המצוע בר ואדיו תדיעו ילכ תרזעב תמא ןמזב ךלש םידימלתה םע תרושקת רשפאמ םג הז .תישיא םימאתומ םירושיא םע ת

    הז דומעב

      . learning.testprojects.me םשב ןיימוד-תת רוציל לוכי התא , testprojects.me אוה ךלש ןיימודה םש םא ,המגודל .Moodle לש ןווקמה הדימלה רתאל תשגל ידכ וב ושמתשי םישמתשמ

      .האבה הנומתב גצומש יפכ A תמושר ףסוהו ךלש ןיימודה םש לש תומדקתמה DNS -ה תורדגה תא חתפ

      :ןתנקתהל האבה הדוקפה תא ץירהל לכות ,ךלש תרשב תושרדנה PHP -ה תומויס תא ךל שיש אדוו ,Moodle תנקתה ינפל .2

      # 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
      

      .אבה ןפואב Moodle םושייל םינותנ דסמ רוצ ,ןכמ רחאל .3

      # mysql -u root -p
      

      .שומישל תחטבואמ המסיס רוצו םינותנה דסמ שמתשמ ,םינותנה דסמ תא רוצ ןכמ רחאל

      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 '[email ';
      MariaDB [(none)]> FLUSH PRIVILEGES;
      MariaDB [(none)]> exit
      

      .ןמקלדכ ,Moodle תיירפסל השיג טנרטניאה תרשל רשפאל ידכ תומיאתמ תולעבו תואשרה רדגה ןכמ רחאלו (/var/www/html/) ךלש טנרטניאה שרוש לא ותוא ריבעהו ןויכראה ץבוק תא אצוה ,moodl

      # 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
      

      :השיג וילא הביתכהו האירקה תרשל רשפאל ידכ תומיאתמ תולעבו תואשרה הצקה זאו ,Moodle קשממ ידי לע ורצונ וא ולעוהש םיצבקה םוקימ איהש moodledata תיירפס תא רוצ ,ןכמ רחאל .5

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

      :moodledata תיירפס תא אוצמל לוכי אוה הפיאו רתאה םוקימו םינותנ דסמ רוביח לש םירטמרפ ןוגכ ,ךלש Moodle -ה תמרופטלפל חתפמ תורדגה קלח רידגהל ידכ הכירעל ותוא וחתפ זאו config.dist.php

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

      .שמתשמה תמסיס תאו םינותנה סיסב שמתשמו םינותנה דסמ םש ,ןוכנה םינותנה דסמ חראמ ,ןוכנה םינותנה סיסב גוס תא רדגה

      $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    = '[email zzwd0L2';   // your database password
      $CFG->prefix    = 'mdl_';       // prefix to use for all table names
      

      :(moodledata תיירפס) dataroot -ה תא ןכו ,Moodle -ב ךלש טנרטניאה יצבק םיאצמנ ובש wwwroot -ה םוקימ תא ןייצמ הז ,ךלש Moodle -ה תבשל השיגל תשמשמה URL -ה תבותכ תא םג רדגה .7

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

      .גצומש יפכ NGINX תרוצתב ורובע תרש תמיסח רוציל ךילע .ךלש Moodle -ה םושיי תא תרשתש ךכ NGINX תרוצת תא רידגהל ךילע ,הז ףיעסב .8

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

      .(fpm.conf תרוצת -etc/nginx/conf.d/php/ -ב תרדגומה תבותכה תועצמאב FastCGI תושקב לבקמ CentOS 8, PHP-FPM -בש בל םיש) php-fpm לע עיבצהל רומא fastcgi_pass -הו ,הלעמל רצונש ךלש ןיימודה תת םשב ת

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

      .ותוא רוגסו ץבוקה תא רומש

      :םינורחאה םייונישה תא ליחהל ידכ php-fpm -ו nginx יתוריש תא שדחמ לעפה ,רדסב איה םא ,הנוכנ םא NGINX תרוצת תא קודב זאו .9

      # nginx -t
      # systemctl restart nginx
      # systemctl restart php-fpm
      

      :תרשב Moodle טנרטניאה יצבקל השיגל ןוכנה רשקהה תא רידגהל ידכ תואבה תודוקפה תא לעפה ,ךלש תכרעמב SELinux תלעפה םא .10

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

      :NGINX טנרטניאה תרשל העונת רשפאל ידכ שאה תמוחב םיחותפ HTTPS -ו HTTP יתורישש אדו ,הזמ ץוח .11

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

      :ליעל תרציש ןיימודה תת תועצמאב טוונו ךלש טנרטניאה ןפדפד תא חתפ ,Moodle טנרטניאה ןיקתמל תשגל ידכ .12

      http://learning.testprojects.me
      

      .ךשמה לע ץחלו םיאנתהו םיאנתה תא ארק ןעטנ החיתפה ףדש עגרב

      .ףסונ עדימ גיצהל ידכ הטמ לולגל לוכי התא .הניוצש הסרגב Moodle רתא תלעפהל תושירדב תדמוע ךלש תכרעמה םאה קודבי טנרטניאה ןיקתמ ,ןכמ רחאל .13

      .טנרטניאה יצבק לש לעופב הנקתהב ליחתהל ידכ ,ךשמה לע ץחלו ,(Moodle -ב HTTPS ליעפהל דציכ הארנ אבה קלחב) התע תעל וז האיגשמ םלעתי ,לעפומ וניא HTTPS -הש ךכ לע ןנולתי ןיקתמה .14

      .ךשמה לע ץחל ,ותמלשה רחאל .אבה ךסמה םוליצב גצומש יפכ Moodle -ה יצבק לש לעופב הנקתהב ליחתי ןיקתמה תעכ .15

      .ליפורפ ןכדע לע ץחלו ףדב הטמל לולג ןכמ רחאל .ךלש ל"אודה תבותכו החפשמה םשו יטרפה םשה ,המסיסה ,שמתשמה םש ןוכדע ידי לע Moodle רתא לש להנמה ןובשח תא ןכדעל ךילע ,אבה בלשב .16

      .ךלש Moodle רתאב שמתשהל ליחתהל ידכ ןכדע לע ץחלו הטמ לולג ןכמ רחאל .Moodle רתא לש ימדקה דומעה תורדגה תא ןכדע זאו .17

      .םינווחמה חול לע הציחל ידי לע דרובשדל תכלל לוכי התא .ךסמה לעש תוארוהה עוציב ידי לע ךלש רתאה תא םושרל ךילע ,ןכמ רחאל .18

      HTTPS םושייל ךלש םישמתשמה ןיב תחטבואמ תרושקת רשפאל ידכ ךלש רתאל הנושארה החטבאה תבכש תא ףיסומ Moodle (טנרטניאה תרש דחוימב NGINX תובוגת קפסמו תושקב לבקמש).

      .ןיפצהל ואוב שמתשנ ,הז ךירדמ רובע .םיינרדומה טנרטניאה ינפדפד לכ ידי לע רכומו םניחב אוהש Let's Encrypt -ב שמתשהל וא ירחסמ CA -מ SSL/TLS תדועת שוכרל ךתורשפאב

      :האבה הדוקפה תועצמאב תורחא תושרדנ תוליבחו certbot ןיקתהל ךתורשפאב .certbot ילכ תועצמאב יטמוטוא ןפואב תלהונמ ןיפצהל ואוב לש רושיאה תסירפ .19

      # dnf install certbot python3-certbot-nginx
      

      .(HTTPS -ל תיטמוטוא הנפותש HTTP תא רידגת םג איה) התוא שיגהל ידכ יטמוטוא ןפואב ךלש NGINX -ה תרוצת תא ךורעל טוברסלו Let's Encrypt תדועת לבקל ידכ האבה הדוקפה תא לעפה ןכמ רחאל .20

      # certbot --nginx
      

      :ןיפצהל ואוב SSL/TLS תדועת לש יטמוטוא שודיח רשפאל ידכ האבה הדוקפה תא לעפה זאו .21

      # 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
      

      .HTTPS -ב שמתשהל ליחתהל ידכ ךלש Moodle -ה תרוצת תא ןכדע ,ןכמ רחאל .22

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

      :HTTPS -ל HTTP -מ wwwroot רתאה תבותכ תא הנש

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

      .HTTPS -ב תעכ לעופ ךלש Moodle -ה רתא יכ רשא ,ביבח ןורחא .23

      .ימשרה דועיתה תא ארקו Moodle רתאל סנכיה ,ךלש השדחה הדימלה תמרופטלפ תלעפהל הרוצת תויורשפאו ףסונ עדימ תלבקל !התע תעל הז והז