Vanilla Forum installeren op CentOS 7

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 doorlopen we de installatie en setup van Vanilla Forum op een CentOS 7 systeem door Nginx als webserver te gebruiken, MySQL als databaseserver, en optioneel kun je de transportlaag beveiligen door acme.sh client en Let’s Encrypt certificate authority te gebruiken 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 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 CentOS 7.
  • Een niet-root gebruiker met sudo privileges.

Eerste stappen

Controleer je CentOS versie:

cat /etc/centos-release
# CentOS Linux release 7.6.1810 (Core)

Stel de tijdzone in:

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

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

sudo yum update -y

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

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

Stap 1 – Installeer PHP en de nodige PHP uitbreidingen

Installeer de Webtatic YUM repo:

sudo rpm -Uvh https://mirror.webtatic.com/yum/el7/webtatic-release.rpm

Installeer PHP, en ook de nodige PHP uitbreidingen:

sudo yum install -y php72w php72w-cli php72w-fpm php72w-common php72w-mbstring php72w-curl php72w-gd php72w-mysql

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 (cli) (built: Jan 12 2019 12:47:33) ( NTS )
# Copyright (c) 1997-2018 The PHP Group
# Zend Engine v3.2.0, Copyright (c) 1998-2018 Zend Technologies

Start en schakel de PHP-FPM dienst in:

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

We kunnen overgaan tot 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. Omdat de standaard CentOS 7 repositories een erg oude MariaDB versie bevatten die niet compatibel is met Vanilla Forum, zullen we de officiƫle MariaDB repo moeten gebruiken om een nieuwere versie te installeren.

Maak MariaDB 10.2 YUM repository voor CentOS:

sudo vim /etc/yum.repos.d/MariaDB.repo

Kopieer en plak er de volgende tekst in:

# MariaDB 10.2 CentOS repository list - created 2017-12-11 23:19 UTC
# http://downloads.mariadb.org/mariadb/repositories/
[mariadb]
name=MariaDB
baseurl=https://yum.mariadb.org/10.2/centos7-amd64
gpgkey=https://yum.mariadb.org/RPM-GPG-KEY-MariaDB
gpgcheck=1

Nadat het bestand op zijn plaats staat, installeer je MariaDB door te draaien:

sudo yum install -y MariaDB-server MariaDB-client

Controleer de versie van MariaDB:

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

Start de MariaDB service en schakel die in:

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

Voermysql_secure installation script uit omMariaDB beter te beveiligen en stel het wachtwoord in voorMariaDB root 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 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 [(none)]> CREATE DATABASE dbname;
MariaDB [(none)]> GRANT ALL ON dbname.* TO 'username' IDENTIFIED BY 'password';
MariaDB [(none)]> FLUSH PRIVILEGES;

SluitMariaDB af:

MariaDB [(none)]> exit

Vervang dbname, 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 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 --stagingflage toe aan de bovenstaande commando's.

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/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 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 CentOS repository:

sudo yum install -y nginx

Controleer de Nginx versie:

nginx -v
# nginx version: nginx/1.12.2

Start de Nginx dienst en schakel hem 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 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/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(/|$) {
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_NAME /index.php;
fastcgi_param SCRIPT_FILENAME $realpath_root/index.php;
fastcgi_param X_REWRITE 1;
fastcgi_pass 127.0.0.1:9000;
}

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/.

Controleer Nginx configuratie op syntaxfouten:

sudo nginx -t

Herlaad 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.6.4.zip

Pak het Vanilla zip archief uit en verwijder het:

unzip vanilla-core-2.6.4.zip
rm vanilla-core-2.6.4.zip

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