Vanilla adalah forum diskusi free dan open-source yang ditulis dalam PHP yang didistribusikan di bawah lisensi GNU GPL2. Kode sumbernya tersedia melalui Github.

Vanilla memiliki sistem tambahan yang Anda manfaatkan untuk menambahkan fitur custom ke forum Vanilla Anda. Konten untuk Forum Vanilla dapat ditulis menggunakan bahasa Markdown.

Dalam tutorial ini, saya akan menunjukkan kepada Anda bagaimana menginstal Vanilla Forum pada Debian 9 dengan menggunakan Nginx sebagai web server, MariaDB sebagai server database, dan secara opsional Anda dapat mengamankan transport layer dengan menggunakan klien acme.sh client dan otoritas sertifikat Let’s Encrypt untuk menambahkan Dukungan SSL.

Persyaratan Vanilla Forums

Vanilla memerlukan server dengan perangkat lunak PHP, MySQL, dan web server (seperti Apache atau Nginx). Anda mungkin harus memiliki domain, jika ingin menginstal pada server produksi.

Persyaratan minimum Forum Vanilla adalah:

  • PHP versi 7.0 atau lebih baru.
  • Ekstensi PHP mbstring, cURL, GD, dan PDO, MySQLi, OpenSSL.
  • MySQL versi 5.0 atau lebih baru (atau setara dengan Percona / MariaDB).
  • Web Server (Nginx, Apache …).
  • MySQL strict mode dinonaktifkan.

Forum Vanilla sangat merekomendasikan:

  • PHP versi 7.2 atau lebih baru.
  • Ekstensi PHP mbstring, cURL, GD, dan PDO, MySQLi, OpenSSL.
  • MySQL versi 5.7 atau lebih baru (atau setara dengan Percona / MariaDB).
  • Web Server (Nginx, Apache …).
  • Enkripsi SSL.

Note: PHP 7.0 telah mencapai akhir masa pakainya dan tidak akan lagi menerima patch keamanan, jadi sangat disarankan untuk menggunakan versi PHP yang lebih baru. Dukungan Vanilla untuk PHP 7.0 akan segera berakhir!

Persyaratan Tutorial

  • Sistem Debian 9
  • Memiliki akses ke user root atau user dengan hak akses sudo.

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 apt update && sudo apt upgrade -y

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

sudo apt install -y curl wget vim git unzip socat bash-completion apt-transport-https lsb-release ca-certificates dirmngr software-properties-common

Langkah 1 – Install PHP dan PHP extensions

Tambahkan repo baru ke sistem Anda untuk menginstal versi PHP yang lebih baru :

sudo 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" | sudo tee /etc/apt/sources.list.d/php.list
sudo apt update && sudo apt upgrade -y

Instal PHP, serta ekstensi PHP yang diperlukan:

sudo apt install -y php7.2 php7.2-cli php7.2-fpm php7.2-common php7.2-mbstring php7.2-curl php7.2-gd php7.2-mysql php7.2-json

Untuk menampilkan PHP yang dikompilasi dalam modul, Anda dapat menjalankan:

php -m

ctype
curl
exif
fileinfo
. . .
. . .

periksa versi PHP :

php --version

# PHP 7.2.14-1+0~20190113100742.14+stretch~1.gbpd83c69 (cli) (built: Jan 13 2019 10:07:43) ( NTS )
# Copyright (c) 1997-2018 The PHP Group
# Zend Engine v3.2.0, Copyright (c) 1998-2018 Zend Technologies
# with Zend OPcache v7.2.14-1+0~20190113100742.14+stretch~1.gbpd83c69, Copyright (c) 1999-2018, by Zend Technologies

Layanan PHP-FPM secara otomatis dimulai dan diaktifkan saat reboot pada sistem Debian 9, sehingga tidak perlu memulai dan mengaktifkannya secara manual. Kita dapat beralih ke langkah berikutnya, yaitu instalasi dan pengaturan database.

Langkah 2 – Install MariaDB dan buat database untuk Vanilla Forum

Vanilla Forum mendukung database MySQL, MariaDB dan Percona. Dalam tutorial ini, kita akan menggunakan MariaDB sebagai server database.

Instal MariaDB versi 10.2 dari repo MariaDB resmi untuk Debian:

sudo apt-key adv --recv-keys --keyserver keyserver.ubuntu.com 0xF1656F24C74CD1D8
sudo add-apt-repository 'deb [arch=amd64,i386,ppc64el] https://mirrors.nxthost.com/mariadb/repo/10.2/debian stretch main'
sudo apt update
sudo apt install -y mariadb-server

Check versi MariaDB :

mysql --version

Mulai dengan menjalankan script mysql_secure_installation untuk melakukan peningkatan keamanan dasar:

sudo mysql_secure_installation

Perintah ini akan mengubah kata sandi root, menghapus pengguna anonim, melarang login root dari jarak jauh dan menghapus database pengujian.

Jawab pertanyaan seperti yang ditunjukkan di bawah ini dan pastikan untuk memilih kata sandi yang aman untuk pengguna root:

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:

mysql -u root -p

Berikan kata sandi root Anda, lalu buat database dan user database untuk Vanilla forums dengan perintah berikut:

CREATE DATABASE dbname;
GRANT ALL ON dbname.* TO 'username' IDENTIFIED BY '[email protected]$$w0rD';
FLUSH PRIVILEGES;

Jangan lupa mengganti dbname, username, dan kata [email protected]$$w0rD dengan konfigurasi pilihan Anda. Setelah selesai, ketik perintah berikut untuk keluar dari shell MariaDB.

mariadb> exit

Langkah 3 – Install Acme.sh client dan install sertifikat Let’s Encrypt

Mengamankan situs web Anda dengan HTTPS sangat penting, ini adalah praktik yang baik untuk mengamankan lalu lintas situs Anda. Untuk mendapatkan sertifikat SSL dari Let’s Encrypt, kita akan menggunakan klien Acme.sh.

Acme.sh adalah perangkat lunak unix shell murni untuk mendapatkan sertifikat SSL dari Let’s Encrypt dengan tanpa dependensi.

Download dan install 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.

Untuk list semua sertifikat, jalankan perintah :

acme.sh --list

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

mkdir -p /etc/letsencrypt/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 – Install Nginx untuk Vanilla Forum

Vanilla Forum dapat bekerja dengan baik dengan banyak perangkat lunak web server populer. Dalam tutorial ini, kami memilih Nginx. Jika Anda lebih suka server web Apache daripada Nginx, silakan kunjungi dokumen resmi Vanilla Forum di Apache untuk mempelajari lebih lanjut.

Download dan install Nginx dari repositori Debian:

sudo apt install -y nginx

Periksa versi Nginx :

sudo nginx -v

Selanjutnya, konfigurasikan NGINX untuk Vanilla Forum. Kita akan membuat server block untuk Vanilla Forum dan tambahkan konfigurasi berikut.

sudo vim /etc/nginx/sites-available/vanilla.conf

Copy dan paste konfigurasi berikut :

server {

  listen 80;
  listen 443 ssl http2;
  server_name forum.example.com;
  root /var/www/vanilla;
  index index.php;

  # RSA
  ssl_certificate /etc/letsencrypt/example.com/fullchain.pem;
  ssl_certificate_key /etc/letsencrypt/example.com/private.key;
  # ECC
  ssl_certificate /etc/letsencrypt/example.com_ecc/fullchain.pem;
  ssl_certificate_key /etc/letsencrypt/example.com_ecc/private.key;

  location ~* /\.git { deny all; return 403; }
  location /build/ { deny all; return 403; }
  location /cache/ { deny all; return 403; }
  location /cgi-bin/ { deny all; return 403; }
  location /uploads/import/ { deny all; return 403; }
  location /conf/ { deny all; return 403; }
  location /tests/ { deny all; return 403; }
  location /vendor/ { deny all; return 403; }

  location ~* ^/index\.php(/|$) {
    include snippets/fastcgi-php.conf;
    fastcgi_param SCRIPT_NAME /index.php;
    fastcgi_param SCRIPT_FILENAME $realpath_root/index.php;
    fastcgi_param X_REWRITE 1;
    fastcgi_pass unix:/var/run/php/php7.2-fpm.sock;
  }

  location ~* \.php(/|$) {
    rewrite ^ /index.php$uri last;
  }

  location / {
    try_files $uri $uri/ @vanilla;
  }

  location @vanilla {
    rewrite ^ /index.php$uri last;
  }

}

NOTE: Untuk konfigurasi Nginx yang lengkap kunjungi Vanilla https://docs.vanillaforums.com/developer/backend/server-nginx/.

Aktifkan konfigurasi vanilla.conf dengan membuat symlink ke direktori sites-enabled  :

sudo ln -s /etc/nginx/sites-available/vanilla.conf /etc/nginx/sites-enabled

Periksa konfigurasi NGINX untuk melihat tidak ada syntax errors

sudo nginx -t

Reload NGINX service:

sudo systemctl reload nginx.service

Langkah 5 – Instal Vanilla Forum

Buat direktori root dokumen tempat Forum Vanilla berada:

sudo mkdir -p /var/www/vanilla

Ubah kepemilikan direktori /var/www/vanilla ke username Anda. Jadi ketika nama pengguna Anda mis. rudi

sudo chown -R rudi:rudi /var/www/vanilla

CATATAN: Ganti rudi dengan nama user non-root yang milik Anda.

Masuk ke direktori root dokumen:

cd /var/www/vanilla

Download arsip zip Vanilla Forum menggunakan perintah wget:

wget https://open.vanillaforums.com/get/vanilla-core-2.8.1.zip

Extract arsip dan hapus file arsip zip Vanilla:

unzip vanilla-core-2.8.1.zip
rm vanilla-core-2.8.1.zip
mv vanilla-2.8.1/* . && mv vanilla-2.8.1/.* .

Berikan kepemilikan yang sesuai:

sudo chown -R www-data:www-data /var/www/vanilla

Pengaturan di server telah berhasil dan saat untuk membuka browser web dan selesaikan instalasi.

Langkah 6 – Selesaikan Instalasi Forum Vanilla

Setelah membuka situs Anda di web browser, Anda akan diarahkan ke halaman berikut:

Isi informasi yang diperlukan dan klik tombol “Continue →” untuk menyelesaikan instalasi dan pengaturan. Setelah itu  admin interface Forum Vanilla akan muncul.

Vanilla Forum di Ubuntu 18.04 LTS