Vanilla Forum installeren op Debian 9

Vanilla is een gratis, open-source discussie forum geschreven in PHP. De Vanilla Forum software wordt verspreid onder de GNU GPL2 licentie. De broncode is beschikbaar via Github. Het heeft een rijk add-on systeem dat je kunt gebruiken om eigen functies aan je Vanilla forum toe te voegen.Inhoud voor Vanilla Forum kan geschreven worden met de Markdown taal.In deze handleiding laat ik je zien hoe je Vanilla Forum op Debian 9 installeert door Nginx als webserver te gebruiken, MariaDB als databaseserver, en optioneel kun je de transportlaag beveiligen door acme.sh client te gebruiken en Let’s Encrypt certificate authority om SSL ondersteuning toe te voegen.

Vereisten

Vanilla vereist een server met PHP, MySQL, en web server software (zoals Apache of Nginx). Je zult waarschijnlijk een domein moeten bezitten, en dat al op je server met DNS geconfigureerd moeten hebben als je op een productieserver wilt installeren, maar zo niet dan heb je geen domein nodig.

De minimum eisenvoor Vanilla Forum zijn:

  • PHP versie 7.0 of nieuwer.
  • PHP uitbreidingen mbstring, cURL, GD, en PDO,MySQLi, OpenSSL.
  • MySQL versie 5.0 of nieuwer (of Percona/MariaDB equivalent).
  • Web Server software (Nginx, Apache …).
  • MySQL strict mode uitgeschakeld.

Vanilla Forum beveeltsterk aan:

  • PHP versie 7.2 of nieuwer.
  • PHP uitbreidingen mbstring, cURL, GD, en PDO,MySQLi, OpenSSL.
  • MySQL versie 5.7 of nieuwer(of Percona/MariaDB equivalent).
  • Web server software (Nginx, Apache …).
  • SSL versleuteling.

OPMERKING:PHP 7.0 heeft het einde van zijn levensduur bereikt en krijgt geen beveiligingspatches meer, dus het is sterk aan te bevelen nieuwere PHP versies te gebruiken.Vanilla’s ondersteuning voor PHP 7.0 zal spoedig eindigen!

Vereisten

  • Een besturingssysteem met Debian 9.
  • Een niet-root gebruiker met sudo privileges.

Eerste stappen

Controleer je Debian versie:

lsb_release -ds
# Debian GNU/Linux 9.7 (stretch)

Stel de tijdzone in:

sudo dpkg-reconfigure tzdata

Werk je besturingssysteem pakketten (software) bij. Dit is een belangrijke eerste stap omdat je er zeker van bent dat je de laatste updates en beveiligingsfixes voor de standaard softwarepakketten van je besturingssysteem hebt:

sudo apt update && sudo apt upgrade -y

Installeer enkele essentiƫle pakketten die nodig zijn voor het basisbeheer van het Debian besturingssysteem:

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

Stap 1 – Installeer PHP en de nodige PHP uitbreidingen

Voeg de nieuwe repo aan je systeem toe om een nieuwere PHP versie te installeren:

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

Installeer PHP, en ook de nodige PHP uitbreidingen:

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

Om PHP gecompileerd in modules te tonen, kun je uitvoeren:

php -m

ctype
curl
exif
fileinfo
. . .
. . .

Controleer de PHP versie:

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

De PHP-FPM dienst wordt op een Debian 9 systeem automatisch gestart en ingeschakeld bij het herstarten, dus het is niet nodig hem handmatig te starten en in te schakelen. We kunnen verder naar de volgende stap, die de installatie en instelling van de databank is.

Stap 2 – Installeer MariaDB en maak een databank voor Vanilla Forum

Vanilla Forum ondersteunt MySQL, MariaDB en Percona databases. In deze handleiding zullen we MariaDB als databaseserver gebruiken.

InstalleerMariaDB versie 10.2 uit de officiƫle MariaDB repo voor 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

Controleerde MariaDB versie:

mysql --version

Voer hetmysql_secure installation script uit omMariaDB beter te beveiligen en stel het wachtwoord in voor deMariaDB root gebruiker:

sudo mysql_secure_installation

Beantwoord elk van de vragen:

Would you like to setup VALIDATE PASSWORD plugin? N
New password: your_secure_password
Re-enter new password: your_secure_password
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

Maak verbinding metMariaDB shell als de root gebruiker:

sudo mysql -u root -p
# Enter password

Maak een legeMariaDB databank en gebruiker voor Vanilla Forum en onthoud de credentials:

mariadb> CREATE DATABASE dbname;
mariadb> GRANT ALL ON dbname.* TO 'username' IDENTIFIED BY 'mypassword';
mariadb> FLUSH PRIVILEGES;

Vervang het woord mypassword door een veilig wachtwoord naar keuze. SluitMariaDB af:

mariadb> exit

Vervang dbname, username en password door je eigen namen.

Stap 3 – Installeer acme.sh client en verkrijg het Let’s Encrypt certificaat (optioneel)

Je website met HTTPS beveiligen is niet noodzakelijk, maar het is een goed gebruik om je site verkeer te beveiligen. Om een TLS certificaat van Let’s Encrypt te verkrijgen gebruiken we acme.sh client. Acme.sh is een zuivere Unix shell software voor het verkrijgen van TLS certificaten van Let’s Encrypt zonder afhankelijkheden.

Download en installeer 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 ~

Controleer de versie van acme.sh:

acme.sh --version
# v2.8.0

Verkrijg RSA en ECC/ECDSA certificaten voor je domein/hostname:

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

Als je nep-certificaten wilt om te testen kun je de --stagingvlag aan de bovenstaande commando’s toevoegen.

Na het uitvoeren van de bovenstaande commando’s staan jecertificaten ensleutels in:

  • Voor RSA: /home/username/example.com map.
  • Voor ECC/ECDSA: /home/username/example.com_ecc map.

Om je uitgegeven certs op te sommen kun je uitvoeren:

acme.sh --list

Maak een directory om je certs in op te slaan. We zullen directory/etc/letsencrypt.

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

Installeer/kopieer certificaten naar/etc/letsencryptmap.

# 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"

Alle certificaten worden om de 60 dagen automatisch vernieuwd.

Verlaat na het verkrijgen van de certs de root gebruiker en ga terug naar de gewone sudo gebruiker:

exit

Stap 4 - Installeer NGINX en configureer NGINX voor Vanilla Forum

Vanilla Forum kan prima werken met veel populaire web server software. In deze handleiding kozen we voor Nginx. Als je liever Apache webserver dan Nginx hebt, kijk dan ophttps://docs.vanillaforums.com/developer/backend/server-apache/ voor meer informatie.

Download en installeer Nginx uit de Debian repository:

sudo apt install -y nginx

Controleer de Nginx versie:

sudo nginx -v

Configureer Nginx voor Vanilla door te draaien:

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

En vul het bestand met de volgende configuratie:

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;
}

}

OPMERKING: Voor complete en productieklare Nginx config voor Vanilla bezoek jehttps://docs.vanillaforums.com/developer/backend/server-nginx/.

Activeer de nieuwe vanilla.conf configuratie door het bestand te koppelen aan de map sites-enabled.

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

Controleer de Nginx configuratie op syntaxisfouten:

sudo nginx -t

Herlaad Nginx service:

sudo systemctl reload nginx.service

Stap 5 - Installeer Vanilla Forum

Maak een document root directory waar Vanilla Forum in moet komen te staan:

sudo mkdir -p /var/www/vanilla

Verander het eigendom van de /var/www/vanilla directory in{jour_user}. Replace the string {your_user} with the name of the Linux user that you are currently logged in, so when your username is e.g. johndoe, then replace '{your_user}' with 'johndoe'.

sudo chown -R {your_user}:{your_user} /var/www/vanilla

OPMERKING: Vervang {jour_user} door je aanvankelijk aangemaakte gebruikersnaam voor niet-rootgebruikers.

Navigeer naar de document root directory:

cd /var/www/vanilla

Download het Vanilla Forum zip archief:

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

Pak het Vanilla zip archief uit en verwijder het:

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

Zorg voor het juiste eigendom:

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

Navigeer in je webbrowser naar de map waarin je Vanilla uploadde en volgde instructies op het scherm.

Stap 6 - Voltooi de Vanilla Forum installatie en installatie

Nadat je je site in een webbrowser geopend hebt, zou je naar de volgende pagina omgeleid moeten worden:

Vanilla Forum Installer

Vul de vereiste informatie in en klik op de "Ga verder " knop om de installatie en setup te voltooien. Daarna zou de Vanilla Forum admin interface moeten verschijnen.

Vanilla Forum op Ubuntu 18.04 LTS