Wie man Vanilla Forum mit Nginx und Let’s Encrypt unter FreeBSD 12 installiert

Vanilla ist ein kostenloses, Open-Source-Diskussionsforum, das in PHP geschrieben wurde. Die Vanilla Forum Software wird unter der GNU GPL2 Lizenz vertrieben. Der Quellcode ist über Github erhältlich. Es hat ein reichhaltiges Add-on-System, das Sie nutzen können, um Ihrem Vanilla-Forum benutzerdefinierte Funktionen hinzuzufügen. Content for Vanilla Forum kann in der Markdown-Sprache geschrieben werden.In diesem Tutorial zeige ich Ihnen, wie Sie Vanilla Forum unter FreeBSD 12 installieren können, indem Sie Nginx als Webserver, MariaDB als Datenbankserver verwenden, und optional können Sie die Transportschicht sichern, indem Sie den acme.sh-Client und die Let’s Encrypt-Zertifizierungsstelle verwenden, um SSL-Unterstützung hinzuzufügen.

Anforderungen

Vanilla benötigt einen Server mit PHP, MySQL/MariaDB und Webserver-Software (wie Apache oder Nginx). Sie müssen wahrscheinlich eine eigene Domain besitzen und diese bereits auf Ihrem Server mit DNS konfiguriert haben, wenn Sie auf einem Produktionsserver installieren möchten, aber wenn nicht, dann benötigen Sie keine Domain.

Die Mindestanforderungen für das Vanilla Forum sind:

  • PHP Version 7.0 oder neuer.
  • PHP-Erweiterungen mbstring, cURL, GD und PDO, MySQLi, OpenSSL.
  • MySQL Version 5.0 oder neuer (oder Percona/MariaDB-Äquivalent).
  • Webserver-Software (Nginx, Apache….).
  • MySQL Strenge Modus deaktiviert.

Vanilla Forum empfiehlt dringend:

  • PHP Version 7.2 oder neuer.
  • PHP-Erweiterungen mbstring, cURL, GD und PDO, MySQLi, OpenSSL.
  • MySQL Version 5.7 oder neuer (oder Percona/MariaDB-Äquivalent).
  • Webserver-Software (Nginx, Apache….).
  • SSL-Verschlüsselung.

Ich werde in diesem Tutorial PHP 7.3 mit MariaDB 10.2 verwenden.

Voraussetzungen

  • Ein Betriebssystem mit FreeBSD 12.
  • Ein Nicht-Root-Benutzer mit sudo-Rechten.

Erste Schritte

Überprüfen Sie Ihre FreeBSD-Version:

uname -ro
# FreeBSD 12.0-RELEASE

Richten Sie die Zeitzone ein:

tzsetup

Aktualisieren Sie Ihre Betriebssystempakete (Software). Dies ist ein wichtiger erster Schritt, denn es stellt sicher, dass Sie die neuesten Updates und Sicherheitsfixes für die Standardsoftwarepakete Ihres Betriebssystems erhalten:

freebsd-update fetch install
pkg update && pkg upgrade -y

Installieren Sie einige wichtige Pakete, die für die grundlegende Verwaltung des Betriebssystems FreeBSD 12.0 erforderlich sind:

pkg install -y sudo vim unzip wget bash socat

Schritt 1 – Installieren Sie PHP und die notwendigen PHP-Erweiterungen.

Installieren Sie PHP sowie die notwendigen PHP-Erweiterungen:

sudo pkg install -y php73 php73-mbstring php73-curl php73-gd php73-pdo php73-mysqli php73-pdo_mysql php73-json php73-openssl php73-ctype php73-dom php73-hash php73-iconv php73-tokenizer php73-calendar php73-fileinfo php73-session php73-simplexml php73-xml php73-filter

Überprüfen Sie die PHP-Version:

php --version

 

# PHP 7.3.9 (cli) (built: Jul 25 2019 01:28:53) ( NTS )
# Copyright (c) 1997-2018 The PHP Group
# Zend Engine v3.3.7, Copyright (c) 1998-2018 Zend Technologies
# with Zend OPcache v7.3.7, Copyright (c) 1999-2018, by Zend Technologies

Aktivieren und starten Sie den PHP-FPM-Dienst:

sudo sysrc php_fpm_enable=yes
sudo service php-fpm start

Schritt 2 – MariaDB installieren und eine Datenbank für Vanilla Forum erstellen.

Vanilla Forum unterstützt MySQL, MariaDB und Percona Datenbanken. In diesem Tutorial werden wir MariaDB als Datenbankserver verwenden.

Installieren Sie MariaDB Version 10.2 aus dem FreeBSD-Repository:

sudo pkg install -y mariadb102-client mariadb102-server

Überprüfen Sie die MariaDB-Version:

mysql --version

MySQL-Dienst aktivieren und starten:

sudo sysrc mysql_enable="yes"
sudo service mysql-server start

Führen Sie dasmysql_secure installation Skript aus, um die MariaDB-Sicherheit zu verbessern, und legen Sie das Passwort für den MariaDB-Benutzer fest:

sudo mysql_secure_installation

Beantworten Sie jede der Fragen:

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

Verbinden Sie sich mit der MariaDB-Shell als Root-Benutzer:

sudo mysql -u root -p
# Enter password

Erstellen Sie eine leere MariaDB-Datenbank und einen Benutzer für das Vanilla Forum und merken Sie sich die Zugangsdaten:

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

Ersetzen Sie das Wort mein Passwort durch ein sicheres Passwort Ihrer Wahl. Verlassen Sie MariaDB:

mariadb> exit

Ersetzen dbnameSie, usernameund passworddurch Ihre Namen.

Schritt 3 – Installieren Sie den acme.sh-Client und erhalten Sie Let’s Encrypt Zertifikat (optional).

Die Sicherung Ihrer Website mit HTTPS ist nicht notwendig, aber es ist eine gute Vorgehensweise, um den Traffic Ihrer Website zu sichern. Um ein TLS-Zertifikat von Let’s Encrypt zu erhalten, verwenden wir den acme.sh-Client. Acme.sh ist eine reine Unix-Shell-Software zum Erhalten von TLS-Zertifikaten von Let’s Encrypt ohne Abhängigkeiten.

Laden Sie acme.sh herunter und installieren Sie es:

sudo su - root
git clone https://github.com/Neilpang/acme.sh.git
cd acme.sh 
./acme.sh --install --accountemail your_email@example.com
source ~/.bashrc
cd ~

Überprüfen Sie die Version von acme.sh:

acme.sh --version
# v2.8.2

Besorgen Sie sich RSA- und ECC/ECDSA-Zertifikate für Ihre Domain/Hostname:

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

Wenn Sie gefälschte Zertifikate zum Testen benötigen, können Sie diese hinzufügen. --stagingFlagge zu den obigen Befehlen.

Nachdem Sie die obigen Befehle ausgeführt haben, sind Ihre Zertifikate und Schlüssel in:

  • Für RSA: /home/username/example.comVerzeichnis.
  • Für ECC/ECDSA: /home/username/example.com_eccVerzeichnis.

Um Ihre ausgestellten Zertifikate aufzulisten, können Sie diese ausführen:

acme.sh --list

Erstellen Sie ein Verzeichnis, um Ihre Zertifikate zu speichern. Wir werden das Verzeichnis verwenden./etc/letsencrypt.

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

Zertifikate installieren/kopieren nach/etc/letsencryptVerzeichnis.

# 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 Zertifikate werden automatisch alle 60 Tage erneuert.

Nach Erhalt der Zertifikate verlassen Sie den Root-Benutzer und kehren Sie zum normalen sudo-Benutzer zurück:

exit

Schritt 4 – NGINX installieren und NGINX für Vanilla Forum konfigurieren

Vanilla Forum kann mit vielen gängigen Webserver-Programmen gut funktionieren. In diesem Tutorial haben wir Nginx ausgewählt. Wenn Sie den Apache Webserver gegenüber Nginx bevorzugen, besuchen Sie bitte https://docs.vanillaforums.com/developer/backend/server-apache/, um mehr zu erfahren.

Laden Sie Nginx herunter und installieren Sie es aus dem FreeBSD-Repository:

sudo pkg install -y nginx

Überprüfen Sie die Nginx-Version:

nginx -v

Aktivieren und starten Sie Nginx:

sudo sysrc nginx_enable=yes
sudo service nginx start

Konfigurieren Sie Nginx for Vanilla, indem Sie es ausführen:

sudo vim /usr/local/etc/nginx/vanilla.conf

Und füllen Sie die Datei mit der folgenden Konfiguration:

server {

listen 80;
listen 443 ssl;
server_name example.com;
root /usr/local/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 fastcgi_params;
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;
}

}

HINWEIS: Für eine vollständige und produktionsreife Nginx-Konfiguration für Vanille besuchen Sie https://docs.vanillaforums.com/developer/backend/server-nginx/.

Führen sudo vim /usr/local/etc/nginx/nginx.confSie aus und fügen Sie die folgende Zeile zum http {}Block hinzu, um die Vanilla-Konfiguration aufzunehmen.

include vanilla.conf;

Überprüfen Sie die Nginx-Konfiguration auf Syntaxfehler:

sudo nginx -t

Nginx-Dienst neu laden:

sudo service nginx reload

Schritt 5 – Vanilla Forum installieren

Erstellen Sie ein Dokumentenstammverzeichnis, in dem sich das Vanilla Forum befinden soll:

sudo mkdir -p /usr/local/www/vanilla

Navigieren Sie zum Stammverzeichnis des Dokuments:

cd /usr/local/www/vanilla

Laden Sie das Zip-Archiv des Vanilla Forums herunter:

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

Extrahieren und entfernen Sie das Vanilla-Zip-Archiv:

sudo unzip vanilla-core-3.2.zip
sudo rm vanilla-core-3.2.zip
sudo mv package/* . && mv package/.* .

Stellen Sie das entsprechende Eigentum zur Verfügung:

sudo chown -R www:www /usr/local/www/vanilla

Navigieren Sie zu dem Ordner, in den Sie Vanilla in Ihrem Webbrowser hochgeladen haben, und folgen Sie den Anweisungen auf dem Bildschirm.

Schritt 6 – Fertigstellung der Vanilla Forum Installation und Einrichtung

Nachdem Sie Ihre Website in einem Webbrowser geöffnet haben, sollten Sie auf die folgende Seite weitergeleitet werden:

Vanilla Forum installer

Geben Sie die erforderlichen Informationen ein und klicken Sie auf die Schaltfläche „Continue ?“, um die Installation und Einrichtung abzuschließen. Danach sollte die Admin-Oberfläche des Vanilla Forums erscheinen.

Vanille-Forum mit Nginx unter FreeBSD

Links

Das könnte Dich auch interessieren …