GNU/Linux >> Belajar Linux >  >> Ubuntu

Cara Menginstal Moodle dengan Nginx dan Mengenkripsi SSL di Ubuntu 20.04

Moodle adalah Sistem Manajemen Pembelajaran sumber terbuka dan gratis yang ditulis dalam PHP. Ini menyediakan cara bagi tutor dan instruktur untuk membuat kursus untuk siswa atau pelajar mereka. Moodle menyediakan sistem terintegrasi yang kuat dan aman dan dilengkapi dengan dasbor khusus yang membantu pengguna untuk mengakses kursus saat ini, masa lalu atau masa depan, serta meninjau pekerjaan yang tertunda. Ini digunakan oleh banyak sekolah, universitas, dan organisasi di seluruh dunia dan memberikan pengalaman belajar yang lebih baik. Ini menyediakan serangkaian fitur yang kaya termasuk, wiki, penilaian, pengiriman tugas, kuis online, papan diskusi, dan banyak lagi.

Dalam tutorial ini, kami akan menunjukkan cara menginstal Moodle dengan server web Nginx dan Let's Encrypt SSL di Ubuntu 20.04.

Prasyarat

  • Server yang menjalankan Ubuntu 20.04.
  • Nama domain valid yang ditunjukkan dengan IP server Anda.
  • Sandi root dikonfigurasi untuk server.

Memulai

Sebelum memulai, Anda perlu memperbarui paket sistem Anda ke versi terbaru. Anda dapat memperbaruinya menggunakan perintah berikut:

apt-get update -y

Setelah server Anda diperbarui, Anda dapat melanjutkan ke langkah berikutnya.

Instal LEMP

Pertama, Anda perlu menginstal Apache, MariaDB, PHP dan library PHP lainnya ke sistem Anda. Anda dapat menginstal semuanya menggunakan perintah berikut:

apt-get install nginx mariadb-server php-fpm php-common php-mysql php-gmp php-curl php-intl php-mbstring php-soap php-xmlrpc php-gd php-xml php-cli php-zip unzip git curl -y

Setelah semua paket terinstal, edit file php.ini dan ubah beberapa pengaturan:

nano /etc/php/7.4/fpm/php.ini

Ubah baris berikut:

memory_limit = 256M
cgi.fix_pathinfo = 0
upload_max_filesize = 100M
max_execution_time = 360
date.timezone = America/Chicago

Simpan dan tutup file kemudian restart layanan PHP-FPM untuk menerapkan perubahan:

systemctl restart php7.4-fpm

Setelah selesai, Anda dapat melanjutkan ke langkah berikutnya.

Buat Basis Data

Moodle menggunakan MySQL atau MariaDB sebagai backend database sehingga Anda perlu membuat database dan pengguna untuk Moodle.

Pertama, sambungkan ke shell MySQL dengan perintah berikut:

mysql

Setelah login, buat database dan user dengan perintah berikut:

CREATE DATABASE moodledb;
CREATE USER 'moodle'@'localhost' IDENTIFIED BY 'password';

Selanjutnya, berikan semua hak istimewa ke database Moodle dengan perintah berikut:

GRANT ALL ON moodledb.* TO 'moodle'@'localhost' WITH GRANT OPTION;

Selanjutnya, flush hak istimewa dan keluar dari MySQL dengan perintah berikut:

FLUSH PRIVILEGES;
EXIT;

Selanjutnya, edit file konfigurasi default MariaDB dan tentukan innodb_file_format:

nano /etc/mysql/mariadb.conf.d/50-server.cnf

Tambahkan baris berikut di dalam bagian [mysqld]:

[mysqld]
innodb_file_format = Barracuda
innodb_file_per_table = 1
innodb_large_prefix = ON

Simpan file kemudian restart layanan MariaDB untuk menerapkan perubahan:

systemctl restart mariadb

Instal Moodle

Pertama, ubah direktori ke direktori root Apache dan unduh versi terbaru Moodle dengan perintah berikut:

cd /var/www/html
git clone -b MOODLE_38_STABLE git://git.moodle.org/moodle.git moodle

Setelah unduhan selesai, edit config.php Moodle dan tentukan tipe database:

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

Temukan baris berikut:

$CFG->dbtype    = 'mysqli';

Dan, ganti dengan baris berikut:

$CFG->dbtype    = 'mariadb';

Simpan dan tutup file kemudian buat direktori data Moodle, atur kepemilikan dan izin yang tepat dengan perintah berikut:

mkdir -p /var/www/html/moodledata
chown -R www-data:www-data /var/www/html/moodle
chmod -R 755 /var/www/html/*
chown www-data:www-data /var/www/html/moodledata

Setelah selesai, Anda dapat melanjutkan ke langkah berikutnya.

Konfigurasi Nginx untuk Moodle

Selanjutnya, Anda perlu membuat file konfigurasi virtual host Nginx untuk meng-host Moodle:

nano /etc/nginx/conf.d/moodle.conf

Tambahkan baris berikut:

server {
    listen 80;
    root /var/www/html/moodle;
    index  index.php index.html index.htm;
    server_name  moodle.example.com;

    client_max_body_size 100M;
    autoindex off;
    location / {
        try_files $uri $uri/ =404;
    }

    location /dataroot/ {
      internal;
      alias /var/www/html/moodledata/;
    }

    location ~ [^/].php(/|$) {
        include snippets/fastcgi-php.conf;
        fastcgi_pass unix:/run/php/php7.4-fpm.sock;
        fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
        include fastcgi_params;
    }
}

Simpan dan tutup file kemudian verifikasi Nginx untuk kesalahan sintaks dengan perintah berikut:

nginx -t

Anda akan mendapatkan output berikut:

nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful

Terakhir, restart layanan Nginx untuk menerapkan perubahan:

systemctl restart nginx

Pada titik ini, Nginx dikonfigurasi untuk meng-host Moodle. Sekarang Anda dapat melanjutkan ke langkah berikutnya.

Akses Antarmuka Web Moodle

Sekarang, buka browser web Anda dan akses antarmuka web Moodle menggunakan URL http://moodle.example.com . Anda akan melihat halaman instalasi Moodle:

Pilih bahasa Anda dan klik Berikutnya . Anda akan melihat halaman berikut:

Berikan alamat web Moodle Anda, jalur direktori, jalur direktori data dan klik Berikutnya . Anda akan melihat halaman berikut:

Pilih jenis driver database Anda dan klik tombol Berikutnya . Anda akan melihat halaman berikut:

Berikan host basis data Anda, nama basis data, nama pengguna, kata sandi, dan klik tombol Berikutnya . Anda akan melihat halaman berikut:

Klik Lanjutkan untuk mengkonfirmasi semua kondisi. Anda akan melihat halaman berikut:

Pastikan semua ekstensi PHP yang diperlukan sudah terpasang lalu klik tombol Lanjutkan . Anda akan melihat halaman berikut:

Klik Lanjutkan . Anda akan melihat halaman berikut:

Berikan nama pengguna, sandi, email, negara, zona waktu admin Anda, dan klik Perbarui Profil. Anda akan melihat halaman berikut:

Berikan setelan halaman depan Anda dan klik tombol Simpan perubahan untuk menyimpan perubahan.

Amankan Moodle dengan Let's Encrypt SSL

Selanjutnya, Anda perlu menginstal alat Certbot untuk mengunduh Let's Encrypt SSL dan mengkonfigurasi Nginx untuk menggunakan SSL ini.

Pertama, instal Certbot dengan perintah berikut:

apt-get install python3-certbot-nginx -y

Setelah terinstal, jalankan perintah berikut untuk mengunduh semua SSL dan konfigurasikan Nginx untuk menggunakannya:

certbot --nginx -d moodle.example.com

Anda akan diminta untuk memberikan alamat email yang valid dan menerima persyaratan layanan seperti yang ditunjukkan di bawah ini:

Saving debug log to /var/log/letsencrypt/letsencrypt.log
Plugins selected: Authenticator nginx, Installer nginx
Enter email address (used for urgent renewal and security notices) (Enter 'c' to
cancel): [email protected]

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Please read the Terms of Service at
https://letsencrypt.org/documents/LE-SA-v1.2-November-15-2017.pdf. You must
agree in order to register with the ACME server at
https://acme-v02.api.letsencrypt.org/directory
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
(A)gree/(C)ancel: A

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Would you be willing to share your email address with the Electronic Frontier
Foundation, a founding partner of the Let's Encrypt project and the non-profit
organization that develops Certbot? We'd like to send you email about our work
encrypting the web, EFF news, campaigns, and ways to support digital freedom.
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
(Y)es/(N)o: Y
Obtaining a new certificate
Performing the following challenges:
http-01 challenge for moodle.example.com
Waiting for verification...
Cleaning up challenges
Deploying Certificate to VirtualHost /etc/nginx/conf.d/moodle.conf

Selanjutnya, pilih apakah akan mengarahkan lalu lintas HTTP ke HTTPS seperti yang ditunjukkan di bawah ini:

Please choose whether or not to redirect HTTP traffic to HTTPS, removing HTTP access.
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
1: No redirect - Make no further changes to the webserver configuration.
2: Redirect - Make all requests redirect to secure HTTPS access. Choose this for
new sites, or if you're confident your site works on HTTPS. You can undo this
change by editing your web server's configuration.
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Select the appropriate number [1-2] then [enter] (press 'c' to cancel): 2

Ketik 2 dan tekan Enter untuk melanjutkan. Anda akan melihat output berikut:

Redirecting all traffic on port 80 to ssl in /etc/nginx/conf.d/moodle.conf

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Congratulations! You have successfully enabled https://moodle.example.com

You should test your configuration at:
https://www.ssllabs.com/ssltest/analyze.html?d=moodle.example.com
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

IMPORTANT NOTES:
 - Congratulations! Your certificate and chain have been saved at:
   /etc/letsencrypt/live/moodle.example.com/fullchain.pem
   Your key file has been saved at:
   /etc/letsencrypt/live/moodle.example.com/privkey.pem
   Your cert will expire on 2021-05-23. To obtain a new or tweaked
   version of this certificate in the future, simply run certbot again
   with the "certonly" option. To non-interactively renew *all* of
   your certificates, run "certbot renew"
 - Your account credentials have been saved in your Certbot
   configuration directory at /etc/letsencrypt. You should make a
   secure backup of this folder now. This configuration directory will
   also contain certificates and private keys obtained by Certbot so
   making regular backups of this folder is ideal.
 - If you like Certbot, please consider supporting our work by:

   Donating to ISRG / Let's Encrypt:   https://letsencrypt.org/donate
   Donating to EFF:                    https://eff.org/donate-le

 - We were unable to subscribe you the EFF mailing list because your
   e-mail address appears to be invalid. You can try again later by
   visiting https://act.eff.org.

Anda sekarang dapat mengakses situs web Moodle menggunakan URL http://moodle.example.com

Kesimpulan

Selamat! Anda telah berhasil menginstal Moodle dengan Nginx dan Let's Encrypt SSL di Ubuntu 20.04. Anda sekarang dapat membuat Sistem Manajemen Pembelajaran Anda sendiri dengan Moodle dengan mudah.


Ubuntu
  1. Cara Menginstal Nextcloud dengan Nginx dan Lets Encrypt SSL di Ubuntu 20.04 LTS

  2. Cara Menginstal Magento 2 dengan Nginx dan Mengenkripsi SSL di Ubuntu 20.04 LTS

  3. Cara Menginstal Drupal 8 dengan Nginx, PHP-FPM dan SSL di Ubuntu 15.10

  1. Cara Menginstal OpenCart 2 dengan Nginx dan SSL di Ubuntu 15.10

  2. Instal Automad CMS dengan Nginx dan Lets Encrypt SSL di Ubuntu 18.04

  3. Cara Menginstal X-Cart dengan Nginx dan Mengenkripsi SSL di Ubuntu 18.04 LTS

  1. Cara Menginstal Drupal dengan Nginx dan Mengenkripsi SSL di Ubuntu 20.04 LTS

  2. Cara Instal Joomla dengan Apache2 dan Lets Encrypt di Ubuntu 20.04

  3. Cara menginstal Webmin dan mengamankannya dengan Lets Encrypt SSL di Ubuntu 20.04 LTS