Տեղադրեք Moodle 3.2-ը RHEL 7 սերվերի վրա


Ներածություն

Moodle-ը ուսումնական հարթակ է, որը նախատեսված է կրթական հաստատությունների համար միասնական, ինտեգրված համակարգ ապահովելու համար:
Այն ապահովում է տասնյակ հազարավոր միջավայրեր ամբողջ աշխարհում, հատկապես Եվրոպայում և Հյուսիսային Ամերիկայում, ընդհանուր առմամբ 235 երկրների և անհամար կրթական կենտրոնների համար, ներառյալ Լոնդոնի տնտեսագիտության դպրոցը: Նախագիծը մշակվել և ղեկավարվում է Moodle HQ-ի կողմից և տարածվում է GNU Ընդհանուր հանրային լիցենզիայի ներքո:
Այն լիովին հարմարեցված է՝ թույլ տալով օգտվողներին ստեղծել կամ տեղադրել հասանելի փլագիններ:
Այս ձեռնարկը բացատրում է, թե ինչպես տեղադրել Moodle 3.2-ը Red Hat Enterprise Linux 7 սերվերի վրա NGINX-ով որպես վեբ սերվեր:

Սկսել

Տեղադրեք NGINX

Ավելացրեք NGINX yum պահոցը՝ ստեղծելով նոր ֆայլ

/etc/yum.repos.d/

:

$EDITOR /etc/yum.repos.d/nginx.repo

Այդ ֆայլում տեղադրեք հետևյալ կոնֆիգուրացիան.

[nginx]
name=NGINX repo
baseurl=http://nginx.org/packages/rhel/7/x86_64/
gpgcheck=0
enabled=1

Տեղադրեք NGINX yum-ով.

yum install nginx

Սկսեք օգտագործել NGINX-ը

systemd

:

systemctl start nginx

Պարզապես փորձարկման համար կատարեք հետևյալ հրամանը.

curl -Ss http://localhost

Եվ այն պետք է թողարկի հետևյալ հաղորդագրությունը.

<h1>Welcome to nginx!</h1>
<p>If you see this page, the nginx web server is successfully installed and
working. Further configuration is required.</p>

<p>For online documentation and support please refer to
<a href="http://nginx.org/">nginx.org</a>.<br/>
Commercial support is available at
<a href="http://nginx.com/">nginx.com</a>.</p>

<p><em>Thank you for using nginx.</em></p>

Միացնել NGINX-ը գործարկելու պահին.

systemctl enable nginx

Տեղադրեք PHP-FPM

PHP-ի կողմից պահանջվող տարբերակը 5.6.5+ է: Հնարավոր է օգտագործել 7-րդ տարբերակը, չնայած այն կարող է ունենալ շարժիչի որոշ սահմանափակումներ:

Եկեք նայենք, թե ինչպես տեղադրել PHP 5.6.5. Նախ, ավելացրեք Webtatic պահեստը.

rpm -Uvh https://mirror.webtatic.com/yum/el7/webtatic-release.rpm

Հաջորդը, տեղադրեք PHP-FPM (և այլ մոդուլներ) հետ

yum

:

# yum install php56w-fpm php56w-cli php56w-pspell php56w-curl php56w-gd php56w-intl php56w-mysql php56w-xml php56w-xmlrpc php56w-ldap php56w-zip php56w-json php56w-opcache php56w-readline php56w-mbstring php56w-soap

Տեղադրման գործընթացի վերջում բացեք PHP կազմաձևման ֆայլը տեքստային խմբագրիչով.

$EDITOR /etc/php.ini

Որոնել

cgi.fix_pathinfos

տողը, ապամեկնաբանեք այն և խմբագրեք հետևյալ կերպ.

cgi.fix_pathinfos=0

Պահպանել և դուրս գալ:

Սկսեք PHP-FPM.

systemctl start php-fpm.service

Տեղադրեք և կարգավորեք MariaDB

Moodle-ն աջակցում է PostgreSQL, MySQL, MariaDB, Microsoft SQL Server և Oracle Database: Այս ձեռնարկում Moodle-ը կկարգավորվի MariaDB-ի օգտագործման համար: Տեղադրեք այս տվյալների բազան

yum

:

yum install mariadb-server

Սկսեք MariaDB:

systemctl start mariadb

Հաջորդը, սահմանեք MariaDB արմատային հաշիվը՝ կատարելով հետևյալ հրամանը.

mysql_secure_installation
Set root password? [Y/n] 
New password: 
Re-enter new password: 
Password updated successfully!
Reloading privilege tables..
 ... Success!
Remove anonymous users? [Y/n] 
 ... Success!
Disallow root login remotely? [Y/n] 
 ... Success!
Remove test database and access to it? [Y/n] 
 - Dropping test database...
 ... Success!
 - Removing privileges on test database...
 ... Success!
Reload privilege tables now? [Y/n] 
 ... Success!

Cleaning up...

All done! If you've completed all of the above steps, your MariaDB
installation should now be secure.

Thanks for using MariaDB!

Հաջորդը, խմբագրեք

/etc/my.cnf.d/server.cnf

ֆայլ:

$EDITOR /etc/my.cnf.d/server.cnf

Ներդրեք հետևյալ բովանդակությունը տակ

[mysqld]

արգելափակում:

default_storage_engine = innodb
innodb_file_per_table = 1
innodb_file_format = Barracuda

Պահպանեք, դուրս եկեք և վերագործարկեք MariaDB ծառայությունը.

systemctl restart mariadb

Կատարեք հրամանը

netstat -plntu | grep mysql

և ստուգեք արդյունքը.

[root@rhel ~]# netstat -plntu | grep mysql
tcp 0 0 0.0.0.0:3306 0.0.0.0:* LISTEN 8006/mysqld

Այս ելքը նշանակում է, որ MariaDB-ն ճիշտ է տեղադրվել և գործարկվել: Հաջորդ քայլը Moodle-ի համար նոր տվյալների բազա ստեղծելն է: Կատարեք հետևյալ հրամանը.

mysql -u root -p

Գործարկեք հետևյալ հարցումները.

MariaDB [(none)]> CREATE DATABASE moodle_db DEFAULT CHARACTER SET utf8 COLLATE utf8_unicode_ci;
Query OK, 1 row affected (0.00 sec)

MariaDB [(none)]> CREATE USER moodle_usr@localhost IDENTIFIED BY 'usr_strong_password';
Query OK, 0 rows affected (0.00 sec)

MariaDB [(none)]> GRANT ALL PRIVILEGES ON moodle_db.* TO moodle_usr@localhost IDENTIFIED BY 'usr_strong_password';
Query OK, 0 rows affected (0.00 sec)

MariaDB [(none)]> FLUSH PRIVILEGES;
Query OK, 0 rows affected (0.00 sec)

MariaDB [(none)]> EXIT;
Bye

Moodle-ի տեղադրում

Moodle-ի ստացում

Moodle ստանալու երկու տարբեր եղանակ կա.

  1. Ներբեռնեք և բացեք արխիվը;
  2. Օգտագործեք

    git

Այս ձեռնարկում մենք կօգտագործենք երկրորդ տարբերակը, որը կատարյալ է մշակողների համար և հեշտացնում է Moodle-ի թարմացումը։ Այս մեթոդն օգտագործելու համար տեղադրեք

git

:

yum install git

Հաջորդը, կլոնավորեք պահեստը վեբ սերվերի արմատային գրացուցակում.

cd /var/www
git clone --single-branch -b MOODLE_32_STABLE git://git.moodle.org/moodle.git

Երբ git-ն ավարտի ծածկագրի ներբեռնումը, ապահովեք այն՝ կատարելով հետևյալ հրամանները.

chown -R root /var/www/moodle 
chmod -R 0755 /var/www/moodle 
find /var/www/moodle -type f -exec chmod 0644 {} \;

Ստեղծեք տվյալների գրացուցակ

Moodle-ը պահանջում է գրացուցակ՝ իր բոլոր ֆայլերը պահելու համար: Այս գրացուցակը,

moodledata

, կտեղադրվի վեբ արմատային գրացուցակից կամ Moodle ծրագրի ֆայլերի գրացուցակից դուրս՝ անվտանգության նկատառումներով:

Ստեղծեք այս գրացուցակը

/var/

, հիշելով, որ վեբ սերվերը պետք է կարողանա դրանում գրել հետևյալը.

mkdir /var/moodledata
chmod 0777 /var/moodledata

Նշում.

moodledata

չպետք է հասանելի լինի ուղղակիորեն համացանցի միջոցով: Այնուամենայնիվ, եթե սրանից խուսափելու միջոց չկա, կարող եք ապահովել այն՝ օգտագործելով a

.htaccess

ֆայլ, ինչպես բացատրվում է ստորև: Եթե արդեն թաքցված եք համացանցից, անտեսեք այս քայլը:

Ապահովելու համար

moodledata

, ստեղծել

.htaccess

ֆայլ դրա ներսում.

$EDITOR /var/moodledata/.htaccess

Այդ ֆայլում տեղադրեք հետևյալ տողերը.

order deny,allow
deny from all

Պահպանել և դուրս գալ:

Ստեղծեք SSL վկայագիր

HTTPS կապերի օգտագործումը պահանջում է SSL վկայագիր: Ստեղծեք ինքնաստորագրված մեկը.

mkdir -p /etc/nginx/certs
openssl req -new -x509 -days 365 -nodes -out /etc/nginx/certs/moodle.crt -keyout /etc/nginx/certs/moodle.key

Այնուհետև համոզվեք, որ փոխում եք մասնավոր բանալու թույլտվությունները.

chmod 600 /etc/nginx/certs/moodle.key

Ստեղծեք վիրտուալ հոսթ ֆայլ

Հաջորդը, ստեղծեք նոր վիրտուալ հոսթի կազմաձևման ֆայլ Moodle-ի համար.

$EDITOR /etc/nginx/conf.d/unixmen-moodle.conf

Այդ ֆայլում տեղադրեք հետևյալ բովանդակությունը.

PHP Upstream Handler
upstream php-handler {
    server unix:/run/php/php7.0-fpm.sock;
}
 
Nginx redirect HTTP to HTTPS
server {
    listen 80;
    server_name moodle.mydomain.com;
    # enforce https
    return 301 https://$server_name$request_uri;
}
 
HTTPS Configuration
server {
        server_name          moodle.mydomain.com;
 
        listen               *:443 ssl http2;
        listen               [::]:443 ssl http2;
 
        # SSL Configuration    
        ssl  on;
        ssl_ciphers "EECDH+AESGCM:EDH+AESGCM:AES256+EECDH:AES256+EDH:ECDHE-RSA-AES128-GCM-SHA384:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA128:DHE-RSA-AES128-GCM-SHA384:DHE-RSA-AES128-GCM-SHA256:DHE-RSA-AES128-GCM-SHA128:ECDHE-RSA-AES128-SHA384:ECDHE-RSA-AES128-SHA128:ECDHE-RSA-AES128-SHA:ECDHE-RSA-AES128-SHA:DHE-RSA-AES128-SHA128:DHE-RSA-AES128-SHA128:DHE-RSA-AES128-SHA:DHE-RSA-AES128-SHA:ECDHE-RSA-DES-CBC3-SHA:EDH-RSA-DES-CBC3-SHA:AES128-GCM-SHA384:AES128-GCM-SHA128:AES128-SHA128:AES128-SHA128:AES128-SHA:AES128-SHA:DES-CBC3-SHA:HIGH:!aNULL:!eNULL:!EXPORT:!DES:!MD5:!PSK:!RC4";
        ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
        ssl_prefer_server_ciphers on;
        ssl_session_cache shared:SSL:10m;
        add_header Strict-Transport-Security "max-age=63072000; includeSubdomains; preload";
        add_header X-Frame-Options DENY;
        add_header X-Content-Type-Options nosniff;
        ssl_session_tickets off;
        #ssl_stapling on;
        #ssl_stapling_verify on;
        resolver_timeout 5s;
        ssl_certificate /etc/nginx/certs/moodle.crt;
        ssl_certificate_key /etc/nginx/certs/moodle.key;
        
        # Root Moodle Data DIrectory
        root /var/www/moodle;
        rewrite ^/(.*\.php)(/)(.*)$ /$1?file=/$3 last;
 
        location ^~ / {
                try_files $uri $uri/ /index.php?q=$request_uri;
                index index.php index.html index.htm;
 
                location ~ \.php$ {
                        include snippets/fastcgi-php.conf;
                        fastcgi_pass php-handler;
                }
        }
}

Պահպանել և դուրս գալ:

Հաջորդը, կրկնօրինակեք

default.conf

ֆայլ:

mv /etc/nginx/conf.d/default.conf /etc/nginx/conf.d/default.conf.old
cp /etc/nginx/conf.d/unixmen-moodle.conf /etc/nginx/conf.d/default.conf

Այնուհետև վերագործարկեք NGINX-ը.

systemctl restart nginx

Moodle-ի տեղադրում

Վերջին քայլը վեբ զննարկիչ բացելն է և անցնել այս URL-ին.

https://moodle.mydomain.com

. Բրաուզերը ցույց կտա Moodle-ի տեղադրման էջը: Պարզապես լրացրեք պահանջվող ձևերը և պատրաստ կլինեք գլորել:

Եզրակացություններ

Moodle-ը դե ֆակտո չափանիշ է կրթական հաստատություններում ամբողջ աշխարհում՝ հազարավոր օգտատերերով: Այս ձեռնարկում մենք տեսանք, թե ինչպես տեղադրել և կարգավորել այն RHEL 7-ի վրա հիմնված սերվերի վրա՝ MariaDB, NGINX և PHP-FPM-ով: