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_rewriteModul, Nginx, IIS).

Voraussetzungen

  • CentOS 7 Betriebssystem.
  • Ein Nicht-Root-Benutzer mit sudoBerechtigungen.

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 your_email@example.com
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.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 /etc/letsencryptVerzeichnis 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.confSie 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/wondercmsVerzeichnisses 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/wondercmsVerzeichnisses auf nginx:

sudo chown -R nginx:nginx /var/www/wondercms

Ausführen sudo vim /etc/php-fpm.d/www.confund 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 adminan und ändern Sie anschließend das Standardpasswort.

WonderCMS mit Nginx auf CentOS

Links

Das könnte Dich auch interessieren …