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 'g4nt!_d3n9aN_P@$$w0rD'; FLUSH PRIVILEGES;
Jangan lupa mengganti dbname, username, dan kata g4nt!_d3n9aN_P@$$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--staging
ke 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.