Phorum adalah website forum Open Source berbasis PHP dan MySQL. Dalam panduan ini, kami akan memandu Anda langkah demi langkah melalui proses instalasi Phorum pada sistem operasi CentOS 7 menggunakan Nginx sebagai web server, MariaDB sebagai databasenya, dan acme.sh dan Let’s Encrypt untuk akses aman HTTPS.

Persyaratan

Persyaratan untuk menjalankan Phorum adalah:

  • Nginx
  • PHP version 5.2 or greater
  • MySQL/MariaDB version 5.0 or greater

Prasyarat

Langkah awal

Siapkan zona waktu server, Pada contoh kali ini kita akan mengatur pada zona waktu menjadi Asia/Jakarta :

timedatectl list-timezones
sudo timedatectl set-timezone 'Asia/Jakarta'

Perbarui paket sistem operasi Anda (software). Ini adalah langkah pertama yang penting karena memastikan Anda memiliki pembaruan terbaru dan perbaikan keamanan untuk paket perangkat lunak default sistem operasi Anda:

sudo yum update -y

Instal beberapa paket penting yang diperlukan untuk administrasi dasar sistem operasi CentOS:

sudo yum install -y curl wget vim git unzip socat bash-completion epel-release

Langkah 1 – Install PHP dan PHP extensions

Install PHP dan juga PHP extensions yang diperlukan :

sudo yum install -y php php-cli php-fpm php-common php-mysql

Install PHP dan juga PHP extensions yang diperlukan :

php -m

ctype
curl
exif
fileinfo
. . .
. . .

periksa versi PHP :

php --version

# PHP 7.2.10-0ubuntu0.18.04.1 (cli) (built: Sep 13 2018 13:45:02) ( NTS )
# Copyright (c) 1997-2018 The PHP Group
# Zend Engine v3.2.0, Copyright (c) 1998-2018 Zend Technologies
#     with Zend OPcache v7.2.10-0ubuntu0.18.04.1, Copyright (c) 1999-2018, by Zend Technologies

Start dan enable PHP-FPM service:

sudo systemctl start php-fpm.service
sudo systemctl enable php-fpm.service

Layanan PHP-FPM secara otomatis dimulai dan diaktifkan saat reboot, sehingga tidak perlu memulai dan mengaktifkannya secara manual. Kita bisa beralih ke langkah selanjutnya, yaitu instalasi dan pengaturan database.

Langkah 2 – Install MariaDB dan Buat Database

Install MariaDB database server:

sudo yum install -y mariadb-server

Periksa versi MariaDB :

mysql --version

Start dan enable MariaDB service:

sudo systemctl start mariadb.service
sudo systemctl enable mariadb.service

Secara default, MariaDB tidak diamankan. Jadi, Anda harus mengamankannya. Anda dapat melakukan ini dengan menjalankan skrip mysql_secure_installation:

sudo mysql_secure_installation

Jawab semua pertanyaan seperti yang ditunjukkan di bawah ini:

    Enter current password for root (enter for none):
    Set root password? [Y/n]: Y
    Remove anonymous users? [Y/n]: Y
    Disallow root login remotely? [Y/n]: Y
    Remove test database and access to it? [Y/n]:  Y
    Reload privilege tables now? [Y/n]:  Y

Setelah MariaDB diamankan, masuk ke shell MariaDB dengan perintah berikut:

sudo mysql -u root -p

Masukkan kata sandi root Anda saat diminta. Kemudian, buat database dan user database untuk Phorum.

Dalam contoh berikut, kita akan membuat database dengan nama phorumdb dan dengan nama user root, Anda bebas memberi nama sesuai dengan kehendak Anda.

MariaDB> CREATE DATABASE phorumdb;
MariaDB> GRANT ALL ON phorumdb.* TO 'root' IDENTIFIED BY 'g4nt!_d3n9an_Pa$$w0rd';
MariaDB> FLUSH PRIVILEGES;

Exit dari MariaDB:

MariaDB> exit

Langkah 3 – Dapatkan Sertifikat Let’s Encrypt (opsional)

Mengamankan blog/website Anda dengan HTTPS memang langkah opsional, tetapi HTTPS adalah praktik yang baik untuk mengamankan lalu lintas situs Anda.

Untuk mendapatkan sertifikat TLS dari Let’s Encrypt, kita akan menggunakan klien acme.sh. Acme.sh adalah perangkat lunak shell UNIX yang digunakan untuk mendapatkan sertifikat TLS dari Let’s Encrypt dengan tanpa dependensi.

Unduh dan instal acme.sh:

sudo su - root
git clone https://github.com/Neilpang/acme.sh.git
cd acme.sh 
./acme.sh --install --accountemail [email protected]
source ~/.bashrc
cd ~

Periksa versi acme.sh:

acme.sh --version
# v2.8.0

Dapatkan sertifikat RSA dan ECC/ECDSA untuk domain/hostname Anda:

# RSA 2048
acme.sh --issue --standalone -d example.com --keylength 2048
# ECDSA
acme.sh --issue --standalone -d example.com --keylength ec-256

Jika ingin membuat sertifikat palsu untuk pengujian, Anda dapat menambahkan flag--stagingke perintah di atas.

Setelah menjalankan perintah di atas, certificates dan keys akan berada di:

  • untuk RSA di direktori : /home/username/example.com.
  • untuk ECC/ECDSA di direktori : /home/username/example.com_ecc.

Untuk list semua sertifikat, jalankan perintah :

acme.sh --list

Buat direktori untuk menyimpan sertifikat Anda. Kita akan menggunakan direktori /etc/letsencrypt

sudo mkdir -p /etc/letsecnrypt/example.com
sudo mkdir -p /etc/letsencrypt/example.com_ecc

Install/copy sertifikat ke direktori /etc/letsencrypt.

# RSA
acme.sh --install-cert -d example.com --cert-file /etc/letsencrypt/example.com/cert.pem --key-file /etc/letsencrypt/example.com/private.key --fullchain-file /etc/letsencrypt/example.com/fullchain.pem --reloadcmd "sudo systemctl reload nginx.service"
# ECC/ECDSA
acme.sh --install-cert -d example.com --ecc --cert-file /etc/letsencrypt/example.com_ecc/cert.pem --key-file /etc/letsencrypt/example.com_ecc/private.key --fullchain-file /etc/letsencrypt/example.com_ecc/fullchain.pem --reloadcmd "sudo systemctl reload nginx.service"

Semua sertifikat akan diperpanjang secara otomatis setiap 60 hari.

Setelah mendapatkan sertifikat, keluar dari user root dan kembali ke user biasa dengan hak sudo :

exit

Langkah 4 – Instal dan Konfigurasi Nginx

Download dan install NGINX dari repository CentOS.

sudo yum install -y nginx

Periksa versi NGINX :

sudo nginx -v
# nginx version: nginx/1.12.2

Start dan enable Nginx service:

sudo systemctl start nginx.service
sudo systemctl enable nginx.service

Selanjutnya, konfigurasikan NGINX untuk Phorum. Kita akan membuat server block untuk Phorumdan tambahkan konfigurasi berikut.

sudo nano /etc/nginx/conf.d/phorum.conf

copy dan paste kontent berikut, jangan lupa mengganti example.com dengan nama domain Anda.

server {
  listen 80;
  listen 443 ssl;
  server_name example.com;
  root /var/www/phorum;
  ssl_certificate /etc/letsencrypt/example.com/fullchain.pem;
  ssl_certificate_key /etc/letsencrypt/example.com/private.key;
  ssl_certificate /etc/letsencrypt/example.com_ecc/fullchain.pem;
  ssl_certificate_key /etc/letsencrypt/example.com_ecc/private.key;
  index index.php index.html;

  location / {
    try_files $uri $uri/ /index.php?$query_string;
  }

  location ~ \.php$ {
    fastcgi_split_path_info ^(.+\.php)(/.+)$;
    try_files $fastcgi_script_name =404;
    set $path_info $fastcgi_path_info;
    fastcgi_param PATH_INFO $path_info;
    fastcgi_index index.php;
    include fastcgi.conf;
    fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
    fastcgi_pass 127.0.0.1:9000;
  }
}

Periksa konfigurasi NGINX untuk melihat tidak ada syntax errors:

sudo nginx -t

Reload NGINX service:

sudo systemctl reload nginx.service

Langkah 4 – Install Phorum

Buat direktori document root untuk Phorum direktori ini adalah tempat di mana Phorum menyimpan semua filenya :

sudo mkdir -p /var/www/phorum

Masuk ke direktori document root:

cd /var/www/phorum

Download rilis terbaru Phorum dari official website dengan perintah wget, Jangan lupa mengganti nomor versi Jika ada yang lebih baru:

wget https://www.phorum.org/downloads/phorum-5.2.23.tar.gz

Extract paket arsip yang diunduh dan pindahkan file ke root dokumen:

tar xvzf phorum-5.2.23.tar.gz
rm phorum-5.2.23.tar.gz
mv Core-phorum_5_2_23/* . && mv Core-phorum_5_2_23/.* .
rmdir Core-phorum_5_2_23

Konfigurasikan akses database :

cp include/db/config.php.sample include/db/config.php

Konfigurasikan pengaturan database dengan mengedit file include/db/config.php:

sudo nano include/db/config.php

Ubah kepemilikan direktori /var/www/phorum menjadi nginx:

sudo chown -R nginx:nginx /var/www/phorum

jalankan perintah berikut dan periksa user dan group apakah sudah seperti berikut :

sudo nano /etc/php-fpm.d/www.conf
sudo vim /etc/php-fpm.d/www.conf
# user = nginx
# group = nginx

Restart PHP-FPM service:

sudo systemctl restart php-fpm.service

Untuk menyelesaikan instalasi, jalankan penginstal berbasis web dengan mengunjungi http://forum.example.com/admin.php di web browser Anda.