Wie installiert man Grav CMS mit Nginx auf Fedora 30

Grav ist eine schnelle, einfache und flexible, dateibasierte CMS-Plattform. Grav wird mit einem leistungsstarken Paketmanagementsystem geliefert, das eine einfache Installation und Aktualisierung von Plugins und Themen sowie eine einfache Aktualisierung von Grav selbst ermöglicht.

Die zugrunde liegende Architektur von Grav ist auf die Verwendung etablierter und erstklassiger Technologien ausgelegt, um sicherzustellen, dass Grav einfach zu bedienen und zu erweitern ist. Zu diesen Schlüsseltechnologien gehören unter anderem:

  • Twig Templating: für eine robuste Steuerung der Benutzeroberfläche
  • Abschrift: für eine einfache Inhaltserstellung
  • YAML: für eine einfache Konfiguration
  • Parsedown: für schnelle Abschrift und Abschrift Extra-Unterstützung
  • Doctrine Cache: Schicht für die Performance
  • Einfacher Abhängigkeitsinjektor: für Erweiterbarkeit und Wartbarkeit
  • Symfony Event Dispatcher: für die Behandlung von Plugin-Ereignissen
  • Symfony Console: für CLI-Schnittstelle
  • Gregwar Image Library: für die dynamische Bildbearbeitung

In diesem Tutorial werden wir die Installation und Einrichtung von Grav CMS auf dem Fedora 30-System mit NGINX als Webserver durchgehen, und optional können Sie die Transportschicht sichern, indem Sie den Acme.sh-Client und die Let’s Encrypt-Zertifikatsbehörde verwenden, um SSL-Unterstützung hinzuzufügen.

Anforderungen

Grav ist bewusst mit wenigen Anforderungen konzipiert, Grav ist mit einfachen Textdateien für Ihre Inhalte aufgebaut. Es wird keine Datenbank benötigt.

Stellen Sie sicher, dass Ihr System die folgenden Anforderungen erfüllt:

  • Webserver (Apache, Nginx, LiteSpeed, Lightly, IIS, etc.) Wir werden NGINX verwenden.
  • PHP Version 7.1.3 oder höher

Voraussetzungen

  • Ein Betriebssystem mit Fedora 30.
  • Ein Nicht-Root-Benutzer mit sudo-Rechten.

Erste Schritte

Überprüfen Sie Ihre Fedora-Version:

cat /etc/fedora-release
# 

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 dnf update -y

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

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

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

Installieren Sie PHP sowie die erforderlichen PHP-Erweiterungen:

sudo dnf install -y php-cli php-fpm php-common php-curl php-gd php-json php-mbstring php-xml php-zip php-opcache php-pecl-apcu

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

# PHP 7.3.17 (cli) (built: May 13 2019 18:03:04) ( NTS )
# Copyright (c) 1997-2018 The PHP Group
# Zend Engine v3.2.0, Copyright (c) 1998-2018 Zend Technologies
# with Zend OPcache v7.2.17, Copyright (c) 1999-2018, by Zend Technologies

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, werden wir den Acme.sh-Client verwenden. Acme.sh ist eine einfache 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 den obigen Befehlen ein Flag --staginghinzufügen.

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

Installieren/Kopieren von Zertifikaten in das Verzeichnis /etc/letsencrypt.

# 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 regulären sudo-Benutzer zurück:

exit

Schritt 3 – Installation und Konfiguration von NGINX

Installieren Sie NGINX:

sudo dnf install -y nginx

Überprüfen Sie die NGINX-Version:

nginx -v
# nginx version: nginx/1.14.2

Starten und aktivieren Sie den NGINX-Dienst:

sudo systemctl start nginx.service
sudo systemctl enable nginx.service

Konfigurieren Sie NGINX für Grav. Führen sudo vim /etc/nginx/conf.d/grav.confSie aus und fügen Sie die folgende Konfiguration hinzu.

server {
  
  listen 80;
  listen 443 ssl;
  server_name example.com;
  root /var/www/grav;
  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.html index.php;
  
  location / {
    try_files $uri $uri/ /index.php?$query_string;
  }
  
  location ~* /(\.git|cache|bin|logs|backup|tests)/.*$ { return 403; }
  location ~* /(system|vendor)/.*\.(txt|xml|md|html|yaml|yml|php|pl|py|cgi|twig|sh|bat)$ { return 403; }
  location ~* /user/.*\.(txt|md|yaml|yml|php|pl|py|cgi|twig|sh|bat)$ { return 403; }
  location ~ /(LICENSE\.txt|composer\.lock|composer\.json|nginx\.conf|web\.config|htaccess\.txt|\.htaccess) { return 403; }

  location ~ \.php$ {
    fastcgi_pass unix:/run/php-fpm/www.sock;
    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 – Grav CMS installieren

Erstellen Sie ein Wurzelverzeichnis für Dokumente:

sudo mkdir -p /var/www/grav

Wechsle den Besitzer des /var/www/gravVerzeichnisses auf den Benutzer, in dem du gerade angemeldet bist, in meinem Fall ist der Benutzerjohndoe:

sudo chown -R johndoe:johndoe /var/www/grav

Navigieren Sie zum Stammordner des Dokuments:

cd /var/www/grav

Herunterladen und Entpacken von Grav:

wget https://getgrav.org/download/core/grav-admin/1.6.9
unzip 1.6.9
mv grav-admin/* . && mv grav-admin/.* .
rm -rf grav-admin 1.6.9

HINWEIS: Version 1.6.9 ist die aktuelle Version und kann sich bis zum Lesen unterscheiden. Auf der Grav-Website finden Sie die neuesten Informationen.

Ändern Sie den Besitzer des /var/www/gravVerzeichnisses auf nginx:

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

Ausführen sudo vim /etc/php-fpm.d/www.confund Einstellen von Benutzer und Gruppe aufnginx…. Zunächst wird sie auf Benutzer und Gruppe eingestellt. apache:

sudo vim /etc/php-fpm.d/www.conf
user = nginx
group = nginx

Starten Sie den PHP-FPM-Dienst neu.

sudo systemctl restart php-fpm.service

Erstellen Sie ein /var/lib/php/session/Verzeichnis und ändern Sie den Besitzer auf nginx:

sudo mkdir -p /var/lib/php/session/ && sudo chown -R nginx:nginx /var/lib/php/session/

Öffnen http://example.comSie es in Ihrem Webbrowser und folgen Sie den Anweisungen auf dem Bildschirm. Um auf den Grav-Administrator zuzugreifen, fügen /adminSie ihn an Ihre URL an.

Schritt 5 – Vollständige Gravur-Einstellung

Erstellen Sie einen Grav-Administrator-Benutzer:

Nach der Erstellung werden Sie zum Admin Dashboard weitergeleitet:

Links

Das könnte Dich auch interessieren …