Vanilla ist ein kostenloses, in PHP geschriebenes Open-Source-Diskussionsforum. Vanilla Forum-Software wird unter der GNU GPL2-Lizenz vertrieben. Der Quellcode ist über Github verfügbar. Es verfügt über ein umfangreiches Add-on-System, das Sie nutzen können, um benutzerdefinierte Funktionen zu Ihrem Vanilla-Forum hinzuzufügen. Inhalte für das Vanilla-Forum können mit der Markdown-Sprache geschrieben werden. In diesem Tutorial zeige ich Ihnen, wie Sie Vanilla Forum auf Debian 9 installieren, indem Sie Nginx als Webserver und MariaDB als Datenbankserver verwenden. Optional können Sie die Transportschicht sichern, indem Sie den acme.sh-Client und die Let's Encrypt-Zertifizierungsstelle hinzufügen SSL-Unterstützung.
Anforderungen
Vanilla erfordert einen Server mit PHP, MySQL und Webserver-Software (wie Apache oder Nginx). Sie müssen wahrscheinlich eine Domäne besitzen und diese bereits auf Ihrem Server mit DNS konfiguriert haben, wenn Sie auf einem Produktionsserver installieren möchten, aber wenn nicht, benötigen Sie keine Domäne.
Vanilla-Forum Minimum Voraussetzungen 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 ...).
- Strikter MySQL-Modus deaktiviert.
Vanilla Forum dient empfohlen :
- 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.
HINWEIS : PHP 7.0 hat das Ende seiner Lebensdauer erreicht und erhält keine Sicherheitspatches mehr, daher wird dringend empfohlen, neuere PHP-Versionen zu verwenden. Die Unterstützung von Vanilla für PHP 7.0 endet bald!
Voraussetzungen
- Ein Betriebssystem, auf dem Debian 9 ausgeführt wird.
- Ein Nicht-Root-Benutzer mit sudo-Berechtigungen.
Erste Schritte
Überprüfen Sie Ihre Debian-Version:
lsb_release -ds
# Debian GNU/Linux 9.7 (stretch)
Richten Sie die Zeitzone ein:
sudo dpkg-reconfigure tzdata
Aktualisieren Sie Ihre Betriebssystempakete (Software). Dies ist ein wichtiger erster Schritt, da dadurch sichergestellt wird, dass Sie über die neuesten Updates und Sicherheitsfixes für die Standardsoftwarepakete Ihres Betriebssystems verfügen:
sudo apt update && sudo apt upgrade -y
Installieren Sie einige wichtige Pakete, die für die grundlegende Verwaltung des Debian-Betriebssystems erforderlich sind:
sudo apt install -y curl wget vim git unzip socat bash-completion apt-transport-https lsb-release ca-certificates dirmngr software-properties-common
Schritt 1 – Installiere PHP und notwendige PHP-Erweiterungen
Fügen Sie das neue Repo zu Ihrem System hinzu, um eine neuere PHP-Version zu installieren:
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
Installieren Sie PHP sowie die erforderlichen PHP-Erweiterungen:
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
Um PHP in Modulen kompiliert anzuzeigen, können Sie Folgendes ausführen:
php -m
ctype
curl
exif
fileinfo
. . .
. . .
Überprüfen Sie die PHP-Version:
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
Der PHP-FPM-Dienst wird beim Neustart auf dem Debian 9-System automatisch gestartet und aktiviert, sodass er nicht manuell gestartet und aktiviert werden muss. Wir können mit dem nächsten Schritt fortfahren, der Datenbankinstallation und -einrichtung.
Schritt 2 – MariaDB installieren und eine Datenbank für das Vanilla Forum erstellen
Vanilla Forum unterstützt MySQL-, MariaDB- und Percona-Datenbanken. In dieser Anleitung verwenden wir MariaDB als Datenbankserver.
Installieren Sie MariaDB Version 10.2 aus dem offiziellen MariaDB-Repo für 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
Prüfen Sie die MariaDB-Version:
mysql --version
Führen Sie mysql_secure installation
aus Skript zur Verbesserung der MariaDB-Sicherheit und zum Festlegen des Passworts für MariaDB root
Benutzer:
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
Stellen Sie als Root-Benutzer eine Verbindung zur MariaDB-Shell her:
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 Anmeldedaten:
mariadb> CREATE DATABASE dbname;
mariadb> GRANT ALL ON dbname.* TO 'username' IDENTIFIED BY 'mypassword';
mariadb> FLUSH PRIVILEGES;
Ersetzen Sie das Wort mypassword durch ein sicheres Passwort Ihrer Wahl. Beenden Sie MariaDB:
mariadb> exit
Ersetzen Sie dbname
, username
und password
mit Ihren eigenen Namen.
Schritt 3 – Installieren Sie den acme.sh-Client und erhalten Sie das Let's Encrypt-Zertifikat (optional)
Das Sichern Ihrer Website mit HTTPS ist nicht erforderlich, aber es ist eine bewährte Methode, den Datenverkehr 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 Abrufen 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 [email protected]
source ~/.bashrc
cd ~
Überprüfen Sie die acme.sh-Version:
acme.sh --version
# v2.8.0
Holen Sie sich RSA und ECC/ECDSA Zertifikate für Ihre Domain/Ihren Hostnamen:
# RSA 2048
acme.sh --issue --standalone -d example.com --keylength 2048
# ECDSA
acme.sh --issue --standalone -d example.com --keylength ec-256
Wenn Sie zum Testen gefälschte Zertifikate wünschen, können Sie --staging
hinzufügen Flag zu den obigen Befehlen.
Nachdem Sie die obigen Befehle ausgeführt haben, werden Ihre Zertifikate und Schlüssel wird sein in:
- Für RSA :
/home/username/example.com
Verzeichnis. - Für ECC/ECDSA :
/home/username/example.com_ecc
Verzeichnis.
Um Ihre ausgestellten Zertifikate aufzulisten, können Sie Folgendes ausführen:
acme.sh --list
Erstellen Sie ein Verzeichnis, um Ihre Zertifikate zu speichern. Wir verwenden das Verzeichnis /etc/letsencrypt.
mkdir -p /etc/letsecnrypt/example.com
sudo mkdir -p /etc/letsencrypt/example.com_ecc
Installieren/kopieren Sie Zertifikate in das /etc/letsencrypt-Verzeichnis.
# 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 alle 60 Tage automatisch erneuert.
Nachdem Sie die Zertifikate erhalten haben, beenden Sie den Root-Benutzer und kehren Sie zum normalen sudo-Benutzer zurück:
exit
Schritt 4 – Installieren Sie NGINX und konfigurieren Sie NGINX für Vanilla Forum
Vanilla Forum funktioniert gut mit vielen gängigen Webserver-Software. 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 aus dem Debian-Repository herunter und installieren Sie es:
sudo apt install -y nginx
Überprüfen Sie die Nginx-Version:
sudo nginx -v
Konfigurieren Sie Nginx für Vanilla, indem Sie Folgendes ausführen:
sudo vim /etc/nginx/sites-available/vanilla.conf
Und füllen Sie die Datei mit der folgenden Konfiguration:
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;
}
}
HINWEIS :Für eine vollständige und produktionsreife Nginx-Konfiguration für Vanilla besuchen Sie https://docs.vanillaforums.com/developer/backend/server-nginx/.
Aktivieren Sie die neue vanilla.conf
konfigurieren, indem Sie die Datei mit sites-enabled
verknüpfen Verzeichnis.
sudo ln -s /etc/nginx/sites-available/vanilla.conf /etc/nginx/sites-enabled
Überprüfen Sie die Nginx-Konfiguration auf Syntaxfehler:
sudo nginx -t
Nginx-Dienst neu laden:
sudo systemctl reload nginx.service
Schritt 5 – Vanilla Forum installieren
Erstellen Sie ein Dokumentstammverzeichnis, in dem sich Vanilla Forum befinden soll:
sudo mkdir -p /var/www/vanilla
Ändern Sie den Besitz von /var/www/vanilla
Verzeichnis zu {your_user}. Replace the string {y
our_user} with the name of the Linux user that you are currently logged in, so when your username is e.g. johndoe, then replace '{y
our_user}' with 'johndoe'.
sudo chown -R {your_user}:{your_user} /var/www/vanilla
HINWEIS :Ersetzen Sie {jour_user}
mit Ihrem ursprünglich erstellten Nicht-Root-Nutzernamen.
Navigieren Sie zum Stammverzeichnis des Dokuments:
cd /var/www/vanilla
Laden Sie das ZIP-Archiv des Vanilla-Forums herunter:
wget https://open.vanillaforums.com/get/vanilla-core-2.8.1.zip
Extrahieren und entfernen Sie das Vanilla-Zip-Archiv:
unzip vanilla-core-2.8.1.zip
rm vanilla-core-2.8.1.zip
mv vanilla-2.8.1/* . && mv vanilla-2.8.1/.* .
Geben Sie die entsprechende Eigentümerschaft an:
sudo chown -R www-data:www-data /var/www/vanilla
Navigieren Sie in Ihrem Webbrowser zu dem Ordner, in den Sie Vanilla hochgeladen haben, und folgen Sie den Anweisungen auf dem Bildschirm.
Schritt 6 – Installation und Einrichtung des Vanilla-Forums abschließen
Nachdem Sie Ihre Website in einem Webbrowser geöffnet haben, sollten Sie auf die folgende Seite weitergeleitet werden:
Geben Sie die erforderlichen Informationen ein und klicken Sie auf "Weiter →" Schaltfläche, um die Installation und Einrichtung abzuschließen. Danach sollte die Verwaltungsoberfläche des Vanilla-Forums angezeigt werden.
Links
- https://open.vanillaforums.com/
- https://github.com/vanilla/vanilla