Nainštalujte Moodle 3.2 na server RHEL 7
Úvod
Moodle je vzdelávacia platforma navrhnutá tak, aby poskytovala jednotný integrovaný systém pre vzdelávacie inštitúcie.
Poháňa desiatky tisíc prostredí po celom svete, najmä v Európe a Severnej Amerike, celkovo v 235 krajinách a nespočetných vzdelávacích centrách vrátane London School of Economics. Projekt je vyvinutý a vedený centrálou Moodle a je distribuovaný pod GNU General Public License.
Je plne prispôsobiteľný a umožňuje používateľom vytvárať alebo inštalovať dostupné doplnky.
Tento tutoriál vysvetľuje, ako nainštalovať Moodle 3.2 na server Red Hat Enterprise Linux 7 s NGINX ako webovým serverom.
Začíname
Nainštalujte NGINX
Pridajte úložisko NGINX yum a vytvorte nový súbor
/etc/yum.repos.d/
:
$EDITOR /etc/yum.repos.d/nginx.repo
Do tohto súboru vložte nasledujúcu konfiguráciu:
[nginx]
name=NGINX repo
baseurl=http://nginx.org/packages/rhel/7/x86_64/
gpgcheck=0
enabled=1
Nainštalujte NGINX s yum:
yum install nginx
Začnite používať NGINX
systemd
:
systemctl start nginx
Len na testovanie vykonajte nasledujúci príkaz:
curl -Ss http://localhost
A mal by vypísať nasledujúcu správu:
<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>
Povoľte spustenie NGINX v čase spustenia:
systemctl enable nginx
Nainštalujte PHP-FPM
Požadovaná verzia PHP je 5.6.5+. Je možné použiť verziu 7, aj keď môže mať určité obmedzenia motora.
Pozrime sa, ako nainštalovať PHP 5.6.5. Najprv pridajte úložisko Webtatic:
rpm -Uvh https://mirror.webtatic.com/yum/el7/webtatic-release.rpm
Ďalej nainštalujte PHP-FPM (a ďalšie moduly).
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
Na konci procesu inštalácie otvorte konfiguračný súbor PHP pomocou textového editora:
$EDITOR /etc/php.ini
Vyhľadajte
cgi.fix_pathinfos
riadok, odkomentujte ho a upravte takto:
cgi.fix_pathinfos=0
Uložiť a ukončiť.
Spustite PHP-FPM:
systemctl start php-fpm.service
Nainštalujte a nakonfigurujte MariaDB
Moodle podporuje PostgreSQL, MySQL, MariaDB, Microsoft SQL Server a Oracle Database. V tomto návode bude Moodle nakonfigurovaný na používanie MariaDB. Nainštalujte túto databázu s
yum
:
yum install mariadb-server
Spustite MariaDB:
systemctl start mariadb
Ďalej nastavte koreňový účet MariaDB vykonaním nasledujúceho príkazu:
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!
Ďalej upravte
/etc/my.cnf.d/server.cnf
súbor :
$EDITOR /etc/my.cnf.d/server.cnf
Vložte nasledujúci obsah pod
[mysqld]
blokovať:
default_storage_engine = innodb
innodb_file_per_table = 1
innodb_file_format = Barracuda
Uložte, ukončite a reštartujte službu MariaDB:
systemctl restart mariadb
Vykonajte príkaz
netstat -plntu | grep mysql
a skontrolujte výstup:
[root@rhel ~]# netstat -plntu | grep mysql
tcp 0 0 0.0.0.0:3306 0.0.0.0:* LISTEN 8006/mysqld
Tento výstup znamená, že MariaDB bola správne nainštalovaná a spustená. Ďalším krokom je vytvorenie novej databázy pre Moodle. Vykonajte nasledujúci príkaz:
mysql -u root -p
Spustite nasledujúce dotazy:
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
Inštalácia Moodle
Získanie Moodle
Moodle môžete získať dvoma rôznymi spôsobmi:
- Stiahnite si a rozbaľte archív;
Použite
git
V tomto návode použijeme druhú možnosť, ktorá je ideálna pre vývojárov a uľahčuje upgrade Moodle. Ak chcete použiť túto metódu, nainštalujte
git
:
yum install git
Ďalej naklonujte úložisko v koreňovom adresári webového servera:
cd /var/www
git clone --single-branch -b MOODLE_32_STABLE git://git.moodle.org/moodle.git
Keď git dokončí sťahovanie kódu, zabezpečte ho vykonaním nasledujúcich príkazov:
chown -R root /var/www/moodle
chmod -R 0755 /var/www/moodle
find /var/www/moodle -type f -exec chmod 0644 {} \;
Vytvorte dátový adresár
Moodle vyžaduje adresár na uloženie všetkých svojich súborov. Tento adresár,
moodledata
, budú z bezpečnostných dôvodov umiestnené mimo koreňového adresára webu alebo adresára programových súborov Moodle.
Vytvorte tento adresár v
/var/
, pričom nezabúdajte, že webový server musí byť schopný do neho zapisovať:
mkdir /var/moodledata
chmod 0777 /var/moodledata
Poznámka:
moodledata
by nemali byť dostupné priamo cez web. Ak sa tomu však nedá vyhnúť, môžete ho zabezpečiť pomocou a
.htaccess
súbor, ako je vysvetlené nižšie. Ak je už skrytý na webe, tento krok ignorujte.
Na zabezpečenie
moodledata
, Vytvor
.htaccess
súbor v ňom:
$EDITOR /var/moodledata/.htaccess
Do tohto súboru vložte nasledujúce riadky:
order deny,allow
deny from all
Uložiť a ukončiť.
Vygenerujte certifikát SSL
Používanie pripojení HTTPS vyžaduje certifikát SSL. Vytvorte si vlastnoručne podpísaný:
mkdir -p /etc/nginx/certs
openssl req -new -x509 -days 365 -nodes -out /etc/nginx/certs/moodle.crt -keyout /etc/nginx/certs/moodle.key
Potom sa uistite, že ste zmenili povolenia súkromného kľúča:
chmod 600 /etc/nginx/certs/moodle.key
Vytvorte súbor virtuálneho hostiteľa
Ďalej vytvorte nový konfiguračný súbor virtuálneho hostiteľa pre Moodle:
$EDITOR /etc/nginx/conf.d/unixmen-moodle.conf
Do tohto súboru prilepte nasledujúci obsah:
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;
}
}
}
Uložiť a ukončiť.
Ďalej zálohujte
default.conf
súbor :
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
Potom reštartujte NGINX:
systemctl restart nginx
Inštalácia Moodle
Posledným krokom je otvorenie webového prehliadača a prechod na túto adresu URL:
https://moodle.mydomain.com
. Prehliadač zobrazí inštalačnú stránku Moodle. Jednoducho vyplňte požadované formuláre a môžete začať!
Závery
Moodle je de facto štandardom vo vzdelávacích inštitúciách po celom svete s tisíckami používateľov. V tomto návode sme videli, ako ho nainštalovať a nakonfigurovať na server založený na RHEL 7 s MariaDB, NGINX a PHP-FPM.