Vanilla Forum op Fedora 29 te installeren

Vanilla is een gratis, open bron 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 doorlopen we de installatie en setup van Vanilla Forum op Fedora 29 systeem door Nginx als webserver te gebruiken, MySQL als databaseserver, en optioneel kun je de transportlaag beveiligen door acme.sh client te gebruiken en Let’s Encrypt certificaat autoriteit om SSL ondersteuning toe te voegen.

Vereisten

Vanilla vereist een server met PHP, MySQL, en webserversoftware (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 eisen voor 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 beveelt sterk 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 waarop Fedora 29 draait.
  • Een niet-root gebruiker met sudo privileges.

Eerste stappen

Controleer je Fedora systeemversie:

cat /etc/fedora-release
# Fedora release 29 (Twenty Nine)

Stel de tijdzone in:

timedatectl list-timezones
sudo timedatectl set-timezone 'Region/City'

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 dnf upgrade -y

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

sudo dnf install -y curl wget vim git sudo zip unzip socat bash-completion

Stap 1 – Installeer PHP en de noodzakelijke PHP uitbreidingen

Installeer PHP, en ook de nodige PHP uitbreidingen:

sudo dnf install -y php-cli php-fpm php-common php-mbstring php-curl php-gd php-mysqlnd php-json

Om PHP gecompileerd in modules te laten zien, kun je:

php -m

ctype
curl
exif
fileinfo
. . .
. . .

Controleer de PHP versie:

php --version

# PHP 7.2.16 (cli) (built: Mar  5 2019 11:05:59) ( NTS )
# Copyright (c) 1997-2018 The PHP Group
# Zend Engine v3.2.0, Copyright (c) 1998-2018 Zend Technologies

Start de dienst PHP-FPM en schakel die in:

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

We kunnen overgaan tot de volgende stap, namelijk de installatie en inrichting van de databank.

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.

Installeer MariaDB door uit te voeren:

sudo dnf install -y mariadb-server

Controleer de MariaDB versie:

mysql --version
# mysql  Ver 15.1 Distrib 10.3.12-MariaDB, for Linux (x86_64) using readline 5.1

Start de MariaDB dienst en schakel die in:

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

Voer mysql_secure installationscript om MariaDB beter te beveiligen en het wachtwoord voor MariaDB in te stellenroot gebruiker:

sudo mysql_secure_installation

Beantwoord elk van de vragen:

Enter current password for root (enter for none): Press Enter
Set root password? [Y/n] Y
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 met MariaDB shell als de root gebruiker:

sudo mysql -u root -p
# Enter password

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

MariaDB [(none)]> CREATE DATABASE dbname;
MariaDB [(none)]> GRANT ALL ON dbname.* TO 'username' IDENTIFIED BY 'password';
MariaDB [(none)]> FLUSH PRIVILEGES;

Sluit MariaDB af:

MariaDB [(none)]> exit

Vervangdbname, username en password door je eigen namen.

Stap 3 - Installeer acme.sh client en verkrijg 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 krijgen gebruiken we het acme.sh programma. Acme.sh is een pure UNIX shell software om TLS certificaten te verkrijgen 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

VerkrijgRSA en ECC/ECDSA certificaten voor je domein/hostnaam:

# 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 je certificaten en sleutels 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 /etc/letsencrypt directory gebruiken.

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 hebben we NGINX gekozen. Als je liever Apache webserver hebt dan NGINX, kijk dan op https://docs.vanillaforums.com/developer/backend/server-apache/ voor meer informatie.

Download en installeer NGINX uit de Fedora repository:

sudo dnf install -y nginx

Controleer de NGINX versie:

nginx -v
# nginx version: nginx/1.14.2

Start en schakel NGINX dienst in:

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

Configureer NGINX voor Vanilla door te draaien:

sudo vim /etc/nginx/conf.d/vanilla.conf

En vul het bestand met de volgende configuratie:

server {

listen 80;
listen 443 ssl http2;
server_name 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/ECDSA
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 default.d/php.conf;
fastcgi_param SCRIPT_NAME /index.php;
fastcgi_param SCRIPT_FILENAME $realpath_root/index.php;
fastcgi_param X_REWRITE 1;
fastcgi_pass unix:/run/php-fpm/www.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 je https://docs.vanillaforums.com/developer/backend/server-nginx/.

Controleer de NGINX configuratie op syntaxfouten:

sudo nginx -t

Herlaad de NGINX dienst:

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

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 nginx:nginx /var/www/vanilla

Start sudo vim /etc/php-fpm.d/www.conf en stel de gebruiker en groep in op nginx. Aanvankelijk zullen ze ingesteld zijn op apache:

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

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 instelling

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