Wie man Craft CMS mit Nginx auf Ubuntu 20.04 installiert

Craft CMS ist ein freies, quelloffenes Content Management System für Webseiten. Es wird von einer großen und wachsenden Gemeinschaft von Entwicklern und Designern unterstützt und bietet eine Reihe von innovativen Funktionen mit einem eleganten Design, das es einfach zu bedienen macht und es erlaubt dir auch, jeden Aspekt der Entwicklung deiner Seite zu kontrollieren.

Es ist eine großartige Alternative zu WordPress und Drupal, welche zwei der beliebtesten Content Management Systeme sind, die heute verwendet werden.

Ein Content Management System (CMS) ist eine Software, die die Verwaltung von Webinhalten erleichtert, wie z.B. das Bearbeiten von Inhalten oder das Hinzufügen neuer Seiten und Bilder. Der Betrieb einer Website kann schwierig sein, wenn du jede Seite einzeln im Code mit HTML oder anderen Auszeichnungssprachen erstellen musst; dies kann zu Problemen führen, wenn mehrere Personen gleichzeitig an deiner Website arbeiten, da es möglicherweise keine Einigung darüber gibt, wie bestimmte Elemente aussehen oder sich verhalten sollen.

Die Verwendung eines CMS ermöglicht es dir, die allgemeine Struktur jeder Seite sowie spezifische Elemente, wie z.B. einen Blogbeitrag oder eine Produktbeschreibung, festzulegen; wenn dann jemand anderes diese Informationen bearbeiten muss, braucht er nur das CMS zu verwenden.

Diese Anleitung zeigt, wie man Craft CMS auf Ubuntu 20.04 LTS (Focal Fossa) installiert. Sie zeigt dir, wie du Craft CMS auf deinem Ubuntu Server installierst. Wenn du die MySQL/MariaDB Datenbank nutzen möchtest, dann wird dir diese Anleitung auch bei der Installation helfen.

Der Prozess der Installation von Craft CMS auf Ubuntu ist ähnlich, unabhängig davon, welche Distribution und Version du verwendest, daher solltest du in der Lage sein, dieser Anleitung zu folgen, auch wenn dein System etwas anders ist. Diese Anleitung wurde mit Blick auf eine Neuinstallation von Ubuntu erstellt, jedoch können einige Schritte leicht variieren, abhängig von deinem aktuellen Server-Setup.

Voraussetzungen

Um dieser Anleitung zu folgen, brauchst du ein paar Dinge:

  • Einen Server, auf dem Ubuntu 20.04 LTS läuft.
  • Einen nicht-root Benutzer mit sudo Rechten auf deinem Ubuntu Server.

Erste Schritte

Dein System aktualisieren

Als erstes loggst du dich als Nicht-Root-Benutzer auf deinem Server ein, indem du den folgenden Befehl ausführst:

ssh root@your_instance_ip

Der Benutzername ist root, du verbindest dich mit dem Server ‚instance_ip‘ über das SSH-Protokoll

your_instance_ip ist die private IP-Adresse deines Servers, auf dem Craft CMS installiert werden soll.

Aktualisiere dein Betriebssystem, indem du den folgenden Befehl ausführst:

sudo apt update && sudo apt upgrade -y

sudo apt update ausführt, um sicherzustellen, dass dein Ubuntu-System auf dem neuesten Stand ist. Dieser Befehl veranlasst Ubuntu, neue Ubuntu-Pakete aus den Ubuntu-Repositories herunterzuladen und auf deinem Ubuntu-Betriebssystem zu installieren. Ubuntu verwendet ein Repository (oder genauer gesagt „Repositories“), das sind Softwareverteilungszentren, aus denen Ubuntu alle seine Anwendungen bezieht.

sudo apt upgrade ist ein Ubuntu-Befehl zum Aktualisieren und Upgraden von Ubuntu-Software. Dies aktualisiert deine Ubuntu Software, was die Aktualisierung des Ubuntu Kerns, der installierten Pakete und jeder neuen Version der Ubuntu Software beinhaltet.

-y ist die Kurzform von –yes. Der Ubuntu-Befehl „apt upgrade -y“ bedeutet, dass Ubuntu automatisch „ja“ zu jeder Ubuntu Software-Update-Anfrage sagen wird.

Wenn du bei der Ausführung dieses Befehls Fehler bekommst, musst du diese eventuell mit dem Ubuntu Software Center oder über ein Terminal beheben. Du kannst dies tun, indem du sudo apt-get -f install eingibst und den Anweisungen im Ubuntu Software Center folgst, um alle Fehler zu beheben, oder du kannst den Terminalbefehl „sudo dpkg –configure -a“ verwenden, um Fehler zu beheben und dann den obigen Befehl erneut ausführen.

sudo apt-get -f install
sudo dpkg --configure -a

Beispielhafte Ausgabe:

Installation von Paketen erzwingen

Installieren von Abhängigkeiten

Installiere die Abhängigkeiten, indem du das folgende Kommando ausführst:

sudo apt install -y curl wget vim git unzip socat
  • curl ist für Ubuntu, um Ubuntu-Updates aus Ubuntu-Repositories herunterzuladen. wget ist eine freie Software, die in Ubuntu und anderen Linux-Betriebssystemen unterstützt wird, um Dateien über die Protokolle HTTP, HTTPS und FTP zu erhalten.
  • vim ist ein beliebter Unix-basierter Texteditor, der sowohl auf fast allen Unix-Systemen als auch auf Microsoft Windows läuft.
  • Ubuntu verwendet unzip, um Dateien aus einer ZIP-Datei zu entpacken.
  • Ubuntu verwendet socat, ein kommandozeilenbasiertes Dienstprogramm, um Verbindungen zwischen zwei verschiedenen Anwendungen zu öffnen und dabei die Standardeingabe- und -ausgabeströme oder -dateien zu verwenden.

Beispielhafte Ausgabe:

Abhängigkeiten installieren

LEMP Server installieren

Craft CMS ist in PHP geschrieben und nutzt MySQL/MariaDB als Datenbank-Engine. Wir werden Ubuntu so konfigurieren, dass wir es zusammen mit einem „LEMP-Stack“ verwenden können. Ein LEMP-Stack ist ein Akronym für Linux, Nginx Webserver, MySQL/MariaDB Datenbank-Engine und PHP Programmiersprache.

Als erstes installierst du den Nginx und MariaDB Server, indem du den folgenden Befehl in deinem Terminal ausführst:

sudo apt-get install nginx mariadb-server -y

Beispielhafte Ausgabe:

Nginx installieren

Sobald beides installiert ist, kannst du PHP installieren, indem du den folgenden Befehl in deinem Terminal ausführst:

sudo apt-get install php php-cli php-fpm php-common php-curl php-gd php-imagick php-json php-mbstring php-mysql php-pgsql php-zip php-intl php-xml -y

php-cli ist die Kommandozeilenschnittstelle für PHP und der Standard-Paketname war in der Vergangenheit „php5“. Jetzt ist es umbenannt in „php“.

php-fpm ist die -wait Version von php-cgi. Es kann gut mit gleichzeitigen Anfragen umgehen und ist nützlich, wenn man es hinter einem Proxy-Server einsetzt.

php-common ist für allgemeine Bibliotheken, die von anderen Modulen benötigt werden, z.B. wird php-json automatisch installiert, wenn wir „php“ installieren.

php-curl ist ein Modul für den Zugriff auf URLs über cURL (Kommandozeilentool, das HTTP-Anfragen sendet).

Hinweis: Ubuntu nutzt das Ubuntu Software Center, um Ubuntu Software zu installieren. Allerdings kann das Ubuntu Software Center keine Software von Drittanbietern herunterladen oder installieren, wie z.B. einige Python-Pakete (virtualenv etc.), die von Craft CMS benötigt werden. Im Ubuntu Software Center musst du die Befehle, die du hier findest, manuell in ein Terminal-Fenster kopieren und einfügen und den Anweisungen folgen.

Nachdem du alle Pakete installiert hast, bearbeite die php.ini Datei in Ubuntus Verzeichnis etc/php/7.4/fpm:

sudo nano /etc/php/7.4/fpm/php.ini

Ändere die folgenden Konfigurationen in der Datei:

memory_limit = 512M
post_max_size = 32M
upload_max_filesize = 32M
date.timezone = Asia/Kolkata

memory_limit = 512M wird vom Craft CMS benötigt, in Ubuntu 20.04 LTS kann PHP das memory_limit nicht selbst ändern, also sollten wir es manuell in der php.ini Datei ändern.

post_max_size = 32M und upload_max_filesize = 32M werden benötigt, um Bilddateien über das CMS hochzuladen, Ubuntu 20.04 LTS hat die Werte post_max_size und upload_max_filesize in der php.ini Datei von Ubuntu standardmäßig auf 16M gesetzt, Craft CMS benötigt 32M.

Craft CMS benötigt außerdem date.timezone = Asia/Kolkata, um die Zeit in Ubuntu 20.04 LTS korrekt anzuzeigen. Ubuntu 20.04 LTS verwendet standardmäßig UTC-5 als Zeitzone, Craft CMS benötigt die Zeitzone in UTC+05:30 (India Standard Time).

Nachdem du die php.ini-Datei bearbeitet hast, speichere und schließe die Datei und starte den PHP-FPM-Dienst von Ubuntu neu:

sudo systemctl restart php7.4-fpm

Um den Status des PHP-FPM-Dienstes von Ubuntu zu überprüfen, gib den folgenden Befehl ein:

sudo systemctl status php7.4-fpm

Beispielhafte Ausgabe:

PHP Status prüfen

Jetzt hast du den LEMP-Server fertig, wir gehen zum nächsten Schritt über.

Datenbank erstellen

Nun werden wir eine Datenbank für das Craft CMS erstellen. Öffne die MySQL-Konsole von Ubuntu:

sudo mysql -u root -p

-p bedeutet Passwort. Wenn du dich mit dem Root-Benutzer verbinden willst, schreibe einfach -u root und drücke Enter, ohne weitere spezifische Informationen einzugeben.

Gib das Passwort ein, das du während der Installation von Ubuntu festgelegt hast. Führe dann die folgenden Befehle aus, um eine Datenbank namens ‚craftdb‘ zu erstellen:

CREATE DATABASE craftdb;
GRANT ALL ON craftdb.* TO 'craftuser' IDENTIFIED BY 'mypassword';
FLUSH PRIVILEGES;
EXIT;

Um diese Datenbank zu nutzen, müssen wir uns mit ihr verbinden. Also erstellen wir einen Benutzer namens ‚craftuser‘. Wir verwenden IDENTIFIED BY anstelle von VALUES, weil wir MySQL sagen, dass es nur die Datenbank verwenden soll und keine anderen Daten. Ersetze das Wort mypassword durch ein sicheres Passwort deiner Wahl.

FLUSH PRIVILEGES verwirft alle unbestätigten Transaktionen in dieser Sitzung.

Craft CMS installieren

Um Craft CMS zu installieren, müssen wir zuerst die neueste Version von Composer installieren. Da Ubuntu die Verwendung von gem in seinem System nicht unterstützt. Wir können Craft CMS nur mit Hilfe von Composer installieren. Führe den folgenden Befehl aus, um Composer zu installieren:

sudo curl -sS https://getcomposer.org/installer -o composer-setup.php

-s schaltet den Silent-Mode ein. Standardmäßig zeigt curl keine Ausgabe an, wenn du -s verwendest, kannst du eine zu parsende Url übergeben. In diesem Fall weisen wir curl an, die URL https://getcomposre zu holen, das -s, wir fügen das Flag hinzu, eine Datei herunterzuladen (die https://getcomposer.org/installer ist) und die URL zu speichern, das -o Flag weist curl an, die heruntergeladene Datei in composer-setup.php zu schreiben

Als nächstes installieren wir den Composer, indem wir den untenstehenden Befehl ausführen:

sudo php composer-setup.php --install-dir=/usr/local/bin --filename=composer

Der php-Befehl wird benötigt, um dem Computer mitzuteilen, dass du dieses PHP-Skript ausführen willst sudo composer-setup.php –install-dir=/usr/local/bin –filename=composer

Das install-dir ist der Zielpfad des Composers. In diesem Fall ist es /usr/local/bin. Wenn du nicht willst, dass die Datei für alle Benutzer zugänglich ist, dann benutze ./ oder ./. Außerdem muss dieses Verzeichnis Ausführungsrechte haben.

Das –filename Flag ist der Name der Datei, als die Composer installiert werden soll.

Wenn du nicht weißt, wo du sie ablegen sollst, kannst du die Datei in ein beliebiges Verzeichnis deiner Wahl kopieren oder sie nach –filename

Sobald der Composer installiert ist, überprüfe die installierte Version mit dem untenstehenden Befehl:

composer --version

Beispielhafte Ausgabe:

Composer Version prüfen

Als nächstes erstellst du ein Verzeichnis für dein Craft CMS Projekt. Wir erstellen ein Verzeichnis namens craft unter dem Verzeichnis /var/www/html/. Wir werden dieses Verzeichnis als unseren Web Root verwenden. Das heißt, alle Dateien, die wir erstellen oder Seiten, die von Craft CMS bedient werden, werden vom Web Root aus aufgerufen.

mkdir /var/www/html/craft

Als nächstes wechselst du in das Craft Verzeichnis und installierst das Craft CMS mit dem Composer:

cd /var/www/html/craft
composer create-project craftcms/craft

Hinweis: Wenn du eine Version von Craft unter 0.97 verwendest, ersetze create-project durch install.

Waring: Dies wird alle bestehenden Dateien im Verzeichnis überschreiben.

Wenn du ein anderes Verzeichnis für dein Craft CMS haben möchtest, kannst du die Option –prefer-dist angeben.

Wenn dein Hosting-Provider es nicht erlaubt, das Dokumenten-Root in /var/www zu ändern, dann ist es sehr empfehlenswert, Craft in ein Unterverzeichnis des Webroots zu installieren, wie: mkdir craft und composer create-project craftcms/craft craft ausführen.

Beispielhafte Ausgabe:

Installiere Craft Cms mit Composer

Du wirst aufgefordert, Datenbankdetails, einen Benutzernamen und ein Passwort für die Administration anzugeben.

Du musst einige Benutzerdaten für die MYSQL Datenbank angeben, damit Craft seine internen Sicherheitsschlüssel einrichten kann! Der Hostname ist ‚localhost‘, der Benutzername ist ‚craftuser‘ und das Passwort ist dasjenige, das du bei der Erstellung der MySQL-Datenbank oben gewählt hast.

An diesem Punkt sollte Composer in der Lage sein, Craft zu kompilieren und in einem Verzeichnis namens craft innerhalb deiner Webroot-Struktur /var/www zu installieren. Standardmäßig ist es nicht über das Internet erreichbar, es sei denn du hast den HTTP-Zugriff aktiviert.

Als nächstes musst du die Eigentumsrechte für das neu installierte Craft Verzeichnis festlegen:

chown -R www-data:www-data /var/www/html/craft

Nginx konfigurieren

Nginx wird verwendet, um Anfragen von Clients zu bedienen, die direkt zu ihm gehen. Es bietet einige zusätzliche Vorteile, wie z.B. das Servieren von statischen Dateien, das Zwischenspeichern von Seiten und die gzip-Kompression dieser Seiten.

sudo nano /etc/nginx/conf.d/craft.conf

Befülle die Datei mit den folgenden Zeilen:

server {
listen 80;
 server_name craft.example.com;
 root /var/www/html/craft/web;
 index index.php;
 location / {
  try_files $uri/index.html $uri $uri/ /index.php?$query_string;
  }
 location ~ [^/]\.php(/|$) {
  try_files $uri $uri/ /index.php?$query_string;
  fastcgi_split_path_info ^(.+\.php)(/.+)$;
  fastcgi_pass unix:/var/run/php/php7.4-fpm.sock;
  fastcgi_index index.php;
  include fastcgi_params;
  fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
  fastcgi_param PATH_INFO $fastcgi_path_info;
  fastcgi_param HTTP_PROXY "";
 }
}

Servername: Dies ist der Domänenname oder die IP-Adresse deines Servers, die Clients werden dies benutzen, um zu bestimmen, von wem sie Dateien anfordern müssen (in unserem Fall ist es craft.example.com).

Documents Root: Dies ist der Ort, an dem sich die Craft CMS Core Assets befinden, einschließlich der Web- und Core-Ordner, die sich unter /var/www/html/craft befinden. Der Pfad, den du hier siehst, kann unterschiedlich sein, abhängig davon, welche Version von Craft du verwendest oder ob die Ordnerstruktur geändert wurde.

Try_files $uri $uri/$uri : Für alle Anfragen zu einer relativen URI wie http:// craft.example.com/index.php wird die index.php Datei zurückgegeben, die typischerweise im Document Root deiner Craft Installation liegt.

Location ~ [^/]\.php(/|$) : Die Regex auf PHP-Dateien bedeutet im Grunde, dass nach jeder Anfrage gesucht wird, die mit einem .php endet oder auf alles außer / und $ passt (es wird rekursiv gesucht).

PHP-FPM Socket Standort: Dies wird von Craft CMS Core Asset Requests verwendet, dieser Wert sollte mit dem Namen deiner php-fpm Socket Datei in deiner Master Konfigurationsdatei /etc/php/7.4{5,6}-fpm.conf übereinstimmen

Speichere und schließe die Datei und überprüfe, ob sie funktioniert, indem du sie ausführst:

sudo nginx -t

Beispielhafte Ausgabe:

nginx Konfiguration prüfen

Wenn es keine Fehler gibt, kannst du Nginx mit dem folgenden Befehl neu starten:

sudo systemctl reload nginx

Zugriff auf das Craft CMS

Nun, da die Dateien konfiguriert sind, können wir auf unsere Craft CMS Installation zugreifen. Richte deinen Browser auf http://craft.example.com und du solltest den Willkommensbildschirm sehen:

Klicke auf „go to your control panel“, gib die Daten deines Admins ein und klicke auf „login“. Du solltest das Standard-Dashboard sehen.

Wenn du eine Meldung wie diese „503 Unavailable“ erhalten hast:

Stelle sicher, dass du die neuesten Updates für Craft, das Craft-Theme und das Craft-Plugin hast. Wenn das nicht hilft, versuche die nächsten Schritte: Stelle sicher, dass die Ordnerberechtigungen von Craft korrekt sind, wie in diesem Artikel beschrieben. Diese Dateien sollten Root gehören und Craft sollte keine Schreibrechte auf einen seiner Ordner haben.

Fazit

Herzlichen Glückwunsch! Nun hast du CraftCMS erfolgreich auf Ubuntu 20.04 installiert. Lass uns ein paar Websites erstellen! Wie immer, zögere nicht, Kommentare oder Vorschläge unten zu hinterlassen.

Das könnte dich auch interessieren …