Cara Install Moodle di Debian 12 Menggunakan Nginx, Postgresql, PHP7.4-FPM

  1. Update System

apt-get update
apt-get upgrade

2. Install Web Server Nginx

apt-get install nginx

systemctl stop nginx.service
systemctl start nginx.service
systemctl enable nginx.service

3. Install Database Postgresql

Repositori Postgresql1314

apt install postgresql-common
sudo sh /usr/share/postgresql-common/pgdg/apt.postgresql.org.sh
apt update

apt install postgresql-14 postgresql-contrib-14 (install versi 14)

apt install postgresql-13 postgresql-contrib-13 (install versi 13)

sudo nano /etc/apt/sources.list.d/pgdg.list (memastikan repository postgre 13)

deb http://apt.postgresql.org/pub/repos/apt bookworm-pgdg main

sudo apt-get update

sudo apt -y install postgresql-13 postgresql-client-13

apt-get install postgresql postgresql-contrib

untuk memastikannya jalankan jalannya koneksi ke database, jalankan perintah ini :

pg_isready

Jika muncul : /var/run/postgresql:5432 – accepting connections . Maka koneksi database sukses. Selanjutnya, untuk mengecek status database baik, jalankan perintah berikut :

systemctl status postgresql

systemctl start postgresql

systemctl restart postgresql

systemctl reload postgresql

Selanjutnya silahkan jalankan perintah berikut ini untuk mengamankan Postgresql, buat password baru :

passwd postgres

Selanjutnya buat user pada database dan amankan dengan password yang kuat, dengan perintah berikut :

su – postgres

psql -c “ALTER USER postgres WITH PASSWORD ‘password'”;

nano /etc/postgresql/13/main/pg_hba.conf

Cari baris berikut dan ubah metode otentikasi menjadi md5seperti yang ditunjukkan pada gambar.

systemctl restart postgresql

4. Install PHP 8.1-FPM dan Module Yang Dibutuhkan

install php8.1

nano /etc/apt/sources.list.d/php.list (Buat repository)

deb https://packages.sury.org/php/ bookworm main

apt update

sudo apt-get install php8.1-fpm

apt-get install aspell graphviz clamav php8.1-common php8.1-mbstring php8.1-xmlrpc php8.1-soap php8.1-gd php8.1-xml php8.1-intl php8.1-pgsql php8.1-cli php8.1-ldap php8.1-zip php8.1-curl

apt-get install apt-transport-https lsb-release ca-certificates
wget -O /etc/apt/trusted.gpg.d/php.gpg https://packages.sury.org/php/apt.gpg
echo deb https://packages.sury.org/php/ $(lsb_release -sc) main | tee /etc/apt/sources.list.d/php8.0.list

apt-get update
apt-get upgrade

apt-get install apt-transport-https lsb-release ca-certificates
wget -O /etc/apt/trusted.gpg.d/php.gpg https://packages.sury.org/php/apt.gpg
echo deb https://packages.sury.org/php/ $(lsb_release -sc) main | tee /etc/apt/sources.list.d/php7.4.list
apt-get update
apt-get upgrade
apt-get install php7.4-fpm

apt-get install aspell graphviz clamav php7.4-common php7.4-mbstring php7.4-xmlrpc php7.4-soap php7.4-gd php7.4-xml php7.4-intl php7.4-pgsql php7.4-cli php7.4-ldap php7.4-zip php7.4-curl

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

nano /etc/php/8.1/fpm/php.ini

file_uploads = On
allow_url_fopen = On
memory_limit = 128M
upload_max_filesize = 8M
max_execution_time = 60
post_max_size = 8M
cgi.fix_pathinfo = 0

5. Membuat Database Moodle

su – postgres

psql

CREATE USER moodleuser WITH PASSWORD ‘password’;
CREATE DATABASE moodle;
GRANT ALL PRIVILEGES ON DATABASE moodle to moodleuser;
\q

untuk membuat database dengan utf8

CREATE DATABASE moodle WITH ENCODING ‘UTF8’ TEMPLATE=template0;

6. Install Moodle

cd /tmp

wget https://download.moodle.org/download.php/direct/stable38/moodle-latest-38.tgz

tar -zxvf moodle-latest-38.tgz

mv moodle /var/www/html/moodle

cd

mkdir /var/moodledata

chown -R www-data /var/www/html/moodle
chmod -R 777 /var/www/html/moodle
chown -R www-data /var/moodledata
chmod -R 777 /var/moodledata

sudo reboot

7. Konfigurasi Situs Moodle di Nginx

nano /etc/nginx/nginx.conf

[…]
keepalive_timeout 2;
[…]

nano /etc/nginx/sites-available/moodle

server {
listen 80;
listen [::]:80;
root /var/www/html/moodle;
index index.php index.html index.htm;
server_name 192.168.0.200;

location / {
try_files $uri $uri/ =404;
}

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

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

}

Berikutnya aktifkan moodle di nginx dengan mengkopi/menduplikat /etc/nginx/sites-available/moodle ke /etc/nginx/sites-enabled, melalui perintah :

ln -s /etc/nginx/sites-available/moodle /etc/nginx/sites-enabled/

sudo nginx -t

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

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

<?php
phpinfo();

systemctl restart nginx.service

Sekarang kita cek info php, dengan mengetikkan http://192.168.0.200/info.php

Jika ketarangan pada baris Server API menunjukkan FPM/FastCGI maka instalasi PHP7.4-FPM sudah benar dan berjalan dengan baik.

8. Jalankan Moodle

Langkah terakhir adalah memeriksa keberhasilan Install Moodle 3.8 di Debian 10 Menggunakan Nginx, Postgresql, PHP7.4-FPM. Untuk memanggil moodle, buka browser dan ketikkan alamat http://alamatIPServer/. Karena pada server yang telah kita bangun memakai IP Server 192.168.0.200 maka alamat IP yang kita ketikkan di url address browser adalah http://192.168.0.200/ , dan hasilnya adalah seperti ini, dan tekan next :

Contoh penggunaan Moodle pada : lms.uncen.ac.id

sumber : https://www.sudutbaca.com/cara-install-moodle-di-debian-10-menggunakan-nginx-postgresql-php7-4-fpm/

https://kifarunix.com/install-postgresql-15-on-debian/#list-databases-in-postgre-sql

Leave a Reply

Your email address will not be published. Required fields are marked *