Wie man Grav CMS mit Nginx unter Debian 9 installiert

Grav ist eine schnelle, einfache und flexible, dateibasierte Web-Plattform, die ähnlichen Prinzipien wie andere Flatfile-CMS-Plattformen folgt, aber eine andere Design-Philosophie hat als die meisten anderen. 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 zugrundeliegende Architektur von Grav ist so ausgelegt, dass sie gut etablierte und klassenbeste Technologien verwendet, um sicherzustellen, dass Grav einfach zu verwenden und leicht zu erweitern ist. Einige dieser Schlüsseltechnologien umfassen:

  • Twig Templating: für eine leistungsstarke Steuerung der Benutzeroberfläche
  • Abschrift: für die einfache Erstellung von Inhalten
  • YAML: für einfache Konfiguration
  • Parsedown: für schnellen Abschlag und zusätzliche Unterstützung beim Abschlag
  • Doctrine Cache: Schicht für die Leistung
  • Pimple Dependency Injection Container: für Erweiterbarkeit und Wartbarkeit
  • Symfony Event Dispatcher: für die Ereignisbehandlung des Plugins
  • Symfony-Konsole: für die CLI-Schnittstelle
  • Gregwar-Bild-Bibliothek: für dynamische Bildbearbeitung

In diesem Leitfaden werden wir Sie Schritt für Schritt durch den Grav-CMS-Installationsprozess auf dem Betriebssystem Debian 9 unter Verwendung von Nginx als Web-Server sowie acme.sh und Let’s Encrypt für HTTPS führen.

Anforderungen

  • Web-Server (Apache, Nginx, LiteSpeed, Lightly oder IIS). In diesem Leitfaden verwenden wir NGINX.
  • PHP 7.1.3 oder höher mit den folgenden PHP-Erweiterungen: curl, ctype, dom, gd, json, mbstring, openssl, session, simplexml, xml, zip, apcu(optional), opcache(optional).

Voraussetzungen

  • Ein Betriebssystem, auf dem Debian 9 läuft.
  • Ein Nicht-Root-Benutzer mit Sudo-Berechtigungen.

Erste Schritte

Überprüfen Sie Ihre Debian-Version:

lsb_release -ds
# Debian GNU/Linux 9.9 (stretch)

Richten Sie die Zeitzone ein:

sudo dpkg-reconfigure tzdata

Aktualisieren Sie Ihre Betriebssystempakete (Software). Dies ist ein wichtiger erster Schritt, da er sicherstellt, dass Sie über die neuesten Aktualisierungen und Sicherheitsfixes für die Standardsoftwarepakete Ihres Betriebssystems verfügen:

sudo apt update && sudo apt upgrade -y

Installieren Sie einige wesentliche Pakete, die für die grundlegende Verwaltung des Debian-Betriebssystems notwendig sind:

sudo apt install -y curl wget vim git unzip socat apt-transport-https

Schritt 1 – PHP und PHP-Erweiterungen installieren

Grav CMS erfordert PHP Version 7.1 oder höher. Debian hat PHP Version 7 im Standard-Repository, daher müssen Sie ein Repo eines Drittanbieters verwenden, um eine neuere Version zu installieren.

sudo apt install apt-transport-https lsb-release ca-certificates
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

Installieren Sie PHP 7.2, sowie die notwendigen PHP-Erweiterungen:

sudo apt install -y php7.2 php7.2-cli php7.2-fpm php7.2-common php7.2-curl php7.2-gd php7.2-json php7.2-mbstring php7.2-xml php7.2-zip php7.2-opcache php-apcu

Prüfen Sie die PHP-Version:

php --version

 

# PHP 7.2.18-1+0~20190503103213.21+stretch~1.gbp101320 (cli) (built: May  3 2019 10:32:13) ( NTS )
# Copyright (c) 1997-2018 The PHP Group
# Zend Engine v3.2.0, Copyright (c) 1998-2018 Zend Technologies
# with Zend OPcache v7.2.18-1+0~20190503103213.21+stretch~1.gbp101320, Copyright (c) 1999-2018, by Zend Technologies

Der PHP-FPM-Dienst wird beim Neustart des Debian 9-Systems automatisch gestartet und aktiviert, so dass es nicht notwendig ist, ihn manuell zu starten und zu aktivieren. Wir können zum nächsten Schritt übergehen, nämlich der Einrichtung von SSL.

Schritt 2 – Acme.sh-Client installieren und Let’s Encrypt-Zertifikat erhalten (optional)

Die Sicherung Ihrer Website mit HTTPS ist nicht notwendig, aber es ist eine gute Praxis, um den Verkehr Ihrer Website zu sichern. Um das TLS-Zertifikat von Let’s Encrypt zu erhalten, verwenden wir den Acme.sh-Client. Acme.sh ist eine reine Unix-Shell-Software, um TLS-Zertifikate von Let’s Encrypt ohne Abhängigkeiten zu erhalten.

Laden Sie Acme.sh herunter und installieren Sie es:

sudo mkdir /etc/letsencrypt
git clone https://github.com/Neilpang/acme.sh.git
cd acme.sh 
sudo ./acme.sh --install --home /etc/letsencrypt --accountemail [email protected]
cd ~

Prüfen Sie die Version von Acme.sh:

/etc/letsencrypt/acme.sh --version
# v2.8.0

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

# RSA 2048
sudo /etc/letsencrypt/acme.sh --issue --standalone --home /etc/letsencrypt -d example.com --keylength 2048
# ECDSA
sudo /etc/letsencrypt/acme.sh --issue --standalone --home /etc/letsencrypt -d example.com --keylength ec-256

Nachdem Sie die oben genannten Befehle ausgeführt haben, wird Ihr Zertifikate und Schlüssel wird in sein:

  • Für RSA: /etc/letsencrypt/example.comVerzeichnis.
  • Für ECC/ECDSA: /etc/letsencrypt/example.com_eccVerzeichnis.

Schritt 3 – NGINX installieren und konfigurieren

Installieren Sie den NGINX-Webserver:

sudo apt install -y nginx

Prüfen Sie die NGINX-Version:

nginx -v
# nginx version: nginx/1.10.3

Führen Sie aus. sudo vim /etc/nginx/sites-available/grav.conf und füllen Sie die Datei mit der folgenden Konfiguration:

server {
  
  listen 80;

  server_name example.com;
  root /var/www/grav;
  
  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:/var/run/php/php7.2-fpm.sock;
    fastcgi_split_path_info ^(.+\.php)(/.+)$;
    fastcgi_index index.php;
    include fastcgi_params;
    fastcgi_param SCRIPT_FILENAME $document_root/$fastcgi_script_name;
  }

}

Aktivieren Sie die neuegrav.conf Konfiguration, indem Sie die Datei mit dem sites-enabledVerzeichnis verknüpfen.

sudo ln -s /etc/nginx/sites-available/grav.conf /etc/nginx/sites-enabled

Prüfen SieNGINX Konfiguration für Syntaxfehler:

sudo nginx -t

Neu ladenNGINX Dienst:

sudo systemctl reload nginx.service

Schritt 4 – Grav CMS installieren

Erstellen Sie ein Dokumenten-Wurzelverzeichnis, in dem Grav liegen sollte:

sudo mkdir -p /var/www/grav

Ändern Sie den Eigentümer des /var/www/gravVerzeichnisses auf {Ihr_Benutzer}. Ersetzen Sie {Ihr_Benutzer} in dem unten stehenden Befehl durch den Benutzernamen, unter dem Sie derzeit bei Debian angemeldet sind.:

sudo chown -R {your_user}:{your_user} /var/www/grav

Navigieren Sie zum Stammverzeichnis des Dokuments:

cd /var/www/grav

Laden Sie die neueste Version von der offiziellen Seite herunter und entpacken Sie die Zip-Datei:

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: Aktualisieren Sie die Download-URL, wenn es eine neuere Version gibt.

Ändern Sie den Eigentümer des /var/www/gravVerzeichnisses auf www-data:

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

Schritt 5 – Vervollständigen Sie die Grav-Einrichtung

Öffnen Sie Ihre Website in einem Webbrowser und Sie sollten eine Seite sehen, die Sie auffordert, ein Grav-Admin-Konto zu erstellen. Erstellen Sie eines und fahren Sie fort, indem Sie auf die Schaltfläche „Benutzer erstellen“ klicken:

Das war’s. Ihre Grav-Installation ist abgeschlossen.

Links

Das könnte dich auch interessieren …