Wie installiert man WonderCMS mit Nginx und Let’s Encrypt SSL auf CentOS 7?
WonderCMS ist ein kostenloses und Open-Source-Flatfile-CMS, das extrem klein, leicht und einfach sein soll. Es ist mit PHP, jQuery, HTML/CSS erstellt und seit 2008 entwickelt. Es ist keine Erstkonfiguration erforderlich. Der Installationsprozess ist ziemlich einfach – entpacken und 5 Dateien hochladen. Alle Dateien können einfach verschoben, gesichert und wiederhergestellt werden, indem alle Dateien an einen anderen Ort kopiert oder eingefügt werden. Das Verschieben auf einen anderen Host erfordert keine Neukonfiguration. WonderCMS benötigt auch keine traditionelle/relationale Datenbank wie MySQL. Die Flat File Technologie ermöglicht es WonderCMS, alle Daten in einer Textdatei (Flat File) namens database.js zu speichern, die im JSON-Format aufgebaut ist. In diesem Tutorial werden wir die Installation und Einrichtung von WonderCMS auf dem CentOS 7-System unter Verwendung von Nginx als Webserver durchgehen, und optional können Sie die Transportschicht mit dem Acme.sh-Client und der Let’s Encrypt-Zertifizierungsstelle absichern, um SSL-Unterstützung hinzuzufügen.
Anforderungen
Voraussetzungen für die Installation und den Betrieb von WonderCMS sind:
- PHP Version 7.1 oder höher mit den Erweiterungen curl, mbstring und zip.
- Webserver (Apache mit aktiviertem
mod_rewrite
Modul, Nginx, IIS).
Voraussetzungen
- CentOS 7 Betriebssystem.
- Ein Nicht-Root-Benutzer mit
sudo
Berechtigungen.
Erste Schritte
Überprüfen Sie Ihre CentOS-Version:
cat /etc/centos-release # CentOS Linux release 7.6.1810 (Core)
Richten Sie die Zeitzone ein:
timedatectl list-timezones sudo timedatectl set-timezone 'Region/City'
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:
sudo yum update -y
Installieren Sie einige wichtige Pakete, die für die grundlegende Administration des CentOS-Betriebssystems erforderlich sind:
sudo yum install -y curl wget vim git unzip socat bash-completion epel-release
Schritt 1 – Installieren Sie PHP und die notwendigen PHP-Erweiterungen.
Richten Sie die Webtatic YUM Repo:
sudo rpm -Uvh https://mirror.webtatic.com/yum/el7/webtatic-release.rpm
Installieren Sie PHP sowie die notwendigen PHP-Erweiterungen:
sudo yum install -y php72w php72w-cli php72w-fpm php72w-common php72w-curl php72w-zip php72w-mbstring php72w-json
Um PHP, das in Modulen kompiliert ist, anzuzeigen, können Sie ausführen:
php -m
ctype
curl
exif
fileinfo
. . .
. . .
Überprüfen Sie die PHP-Version:
php --version
Starten und aktivieren Sie den PHP-FPM-Dienst:
sudo systemctl start php-fpm.service sudo systemctl enable php-fpm.service
Schritt 2 – Installieren Sie den acme.sh-Client und erhalten Sie Let’s Encrypt-Zertifikat (optional).
Die Sicherung Ihres Forums 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 [email protected] source ~/.bashrc cd ~
Überprüfen Sie die Version von acme.sh:
acme.sh --version # v2.8.0
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 den obigen Befehlen ein Flag hinzufügen--staging
.
Nachdem Sie die obigen Befehle ausgeführt haben, sind Ihre Zertifikate und Schlüssel 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 diese ausführen:
acme.sh --list
Erstellen Sie ein Verzeichnis, um Ihre Zertifikate zu speichern. Wir werden das /etc/letsencrypt
Verzeichnis verwenden.
mkdir -p /etc/letsecnrypt/example.com
sudo mkdir -p /etc/letsencrypt/example.com_ecc
Zertifikate installieren/kopieren nach /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 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 3 – Installation und Konfiguration von NGINX
WonderCMS kann mit vielen gängigen Webserver-Programmen problemlos zusammenarbeiten. In diesem Tutorial haben wir NGINX ausgewählt.
Installieren Sie NGINX:
sudo yum install -y nginx
Überprüfen Sie die NGINX-Version:
nginx -v # nginx version: nginx/1.12.2
Starten und aktivieren Sie den NGINX-Dienst:
sudo systemctl start nginx.service sudo systemctl enable nginx.service
Als nächstes konfigurieren Sie NGINX für WonderCMS. Führen sudo vim /etc/nginx/conf.d/wondercms.conf
Sie aus und fügen Sie die folgende Konfiguration hinzu:
server {
listen 80;
listen 443 ssl;
server_name example.com;
root /var/www/wondercms;
ssl_certificate /etc/letsencrypt/example.com/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/example.com/private.key;
ssl_certificate /etc/letsencrypt/example.com_ecc/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/example.com_ecc/private.key;
index index.php;
location / {
if (!-e $request_filename) {
rewrite ^/(.+)$ /index.php?page=$1 last;
}
}
location ~ database.js {
return 403;
}
location ~ \.php(/|$) {
try_files $uri =404;
fastcgi_pass http://127.0.0.1:9000;
fastcgi_split_path_info ^(.+\.php)(/.+)$;
fastcgi_index index.php;
include fastcgi_params;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
}
}
Überprüfen Sie die NGINX-Konfiguration auf Syntaxfehler:
sudo nginx -t
Laden Sie den NGINX-Dienst neu:
sudo systemctl reload nginx.service
Schritt 4 – WonderCMS installieren
Erstellen Sie ein Dokumentenstammverzeichnis für WonderCMS.
sudo mkdir -p /var/www/wondercms
Ändern Sie den Besitzer des /var/www/wondercms
Verzeichnisses auf [jour_username]. The string [
jour_username] must be replaced with the name of the Linux user that you are currently logged in.
sudo chown -R [your_username]:[your_username] /var/www/wondercms
Navigieren Sie zum Stammverzeichnis des Dokuments:
cd /var/www/wondercms
Laden Sie den Quellcode von WonderCMS herunter und entpacken Sie ihn:
wget https://github.com/robiso/wondercms/releases/download/2.7.0/WonderCMS-2.7.0.zip unzip WonderCMS-2.7.0.zip rm WonderCMS-2.7.0.zip
Verschieben Sie WonderCMS-Dateien in das Stammverzeichnis des Dokuments.
mv wondercms/* . && mv wondercms/.*. rmdir wondercms
Ändern Sie den Besitzer des /var/www/wondercms
Verzeichnisses auf nginx:
sudo chown -R nginx:nginx /var/www/wondercms
Ausführen sudo vim /etc/php-fpm.d/www.conf
und Einstellen von Benutzer und Gruppe auf nginx
.
sudo vim /etc/php-fpm.d/www.conf
user = nginx group = nginx
Entfernen Sie das # vor der Benutzer- und Gruppenzeile, falls ein # vorangestellt ist.
Starten Sie dann den PHP-FPM-Dienst neu.
sudo systemctl restart php-fpm.service
Öffnen Sie Ihre Website in einem Webbrowser und melden Sie sich mit einem Standardpasswort admin
an und ändern Sie anschließend das Standardpasswort.