Drupal ist eine kostenlose, skalierbare und offene Plattform zum Erstellen und Verwalten von Website-Inhalten. Es hat eine große Community und wird von Millionen von Menschen und Organisationen auf der ganzen Welt genutzt. Drupal bietet eine einfache und benutzerfreundliche Webschnittstelle, mit der Sie eine Vielzahl von Websites erstellen können, die von persönlichen Websites bis hin zu großen Community-Websites reichen.
In diesem Leitfaden zeigen wir Ihnen, wie Sie mehrere Drupal-Instanzen mit Nginx unter Ubuntu 20.04 bereitstellen.
Voraussetzungen
- Ein Server mit Ubuntu 20.04.
- Zwei gültige Domainnamen, auf die Ihre Server-IP verweist.
- Auf dem Server ist ein Root-Passwort konfiguriert.
Schritt 1:Erforderliche Abhängigkeiten installieren
Zuerst müssen Sie Ihre Systempakete auf die aktualisierte Version aktualisieren und die erforderlichen Abhängigkeiten auf Ihrem System installieren. Sie können dies mit dem folgenden Befehl tun:
apt-get update -y
apt-get install gnupg2 software-properties-common unzip git wget -y
Sobald alle Abhängigkeiten installiert sind, können Sie mit dem nächsten Schritt fortfahren.
Schritt 2:Nginx und MariaDB installieren
Hier werden wir Drupal mit Nginx hosten. Nginx muss also auf Ihrem Server installiert sein. Wenn es nicht installiert ist, können Sie es mit dem folgenden Befehl installieren:
apt-get install nginx -y
Nach der Installation von Nginx müssen Sie die neueste Version von MariaDB auf Ihrem Server installieren. Standardmäßig ist die neueste Version von MariaDB nicht im Standard-Repository von Ubuntu 20.04 enthalten. Sie müssen also das MariaDB-Repository zu APT hinzufügen.
Fügen Sie zuerst den GPG-Schlüssel mit dem folgenden Befehl hinzu:
apt-key adv --recv-keys --keyserver hkp://keyserver.ubuntu.com:80 0xF1656F24C74CD1D8
Als nächstes fügen Sie das MariaDB-Repository mit dem folgenden Befehl hinzu:
add-apt-repository "deb [arch=amd64,arm64,ppc64el] http://mariadb.mirror.liquidtelecom.com/repo/10.4/ubuntu $(lsb_release -cs) main"
Sobald das Repository hinzugefügt wurde, aktualisieren Sie das Repository und installieren Sie die neueste Version von MariaDB mit dem folgenden Befehl:
apt-get update -y
apt-get install mariadb-server -y
Sobald der MariaDB-Server installiert ist, können Sie mit dem nächsten Schritt fortfahren.
Schritt 3:Installieren Sie PHP 7.4
Drupal unterstützt PHP 8.0 nicht. Sie müssen also PHP 7.4 in Ihrem System installieren. Sie können PHP Version 7.4 mit anderen erforderlichen Erweiterungen mit dem folgenden Befehl installieren:
apt-get install php7.4 php7.4-fpm php7.4-gd php7.4-common php7.4-mysql php7.4-apcu php7.4-gmp php7.4-curl php7.4-intl php7.4-mbstring php7.4-xmlrpc php7.4-gd php7.4-xml php7.4-cli php7.4-zip -y
Sobald alle Pakete installiert sind, bearbeiten Sie die Datei php.ini und nehmen Sie einige Änderungen vor:
nano /etc/php/7.4/fpm/php.ini
Ändern Sie die folgenden Zeilen:
date.timezone =Asia/Kolkatamemory_limit =256Mupload_max_filesize =64Mmax_execution_time =600cgi.fix_pathinfo =0
Speichern und schließen Sie die Datei und starten Sie dann PHP-FPM neu, um die Änderungen zu übernehmen:
systemctl startet php7.4-fpm neu
Schritt 4:Drupal-Datenbank erstellen
Als nächstes müssen Sie eine Datenbank und einen Benutzer für beide Drupal-Instanzen erstellen.
Stellen Sie zunächst mit dem folgenden Befehl eine Verbindung zu MySQL her:
mysql
Sobald die Verbindung hergestellt ist, erstellen Sie mit dem folgenden Befehl eine Datenbank für beide Drupal-Instanzen:
MariaDB [(keine)]> erstellt Datenbank drupal1db;
MariaDB [(keine)]> erstellt Datenbank drupal2db;
Erstellen Sie als Nächstes einen Datenbankbenutzer für beide Drupal-Instanzen mit dem folgenden Befehl:
MariaDB [(keine)]> Benutzer erstellen [E-Mail-geschützt] identifiziert durch „Passwort“;
MariaDB [(keine)]> Benutzer erstellen [E-Mail-geschützt] identifiziert durch „Passwort“;
Als nächstes gewähren Sie beiden Drupal-Datenbanken alle Berechtigungen mit dem folgenden Befehl:
MariaDB [(keine)]> gewährt [email protected], identifiziert durch „Passwort“, alle Privilegien auf drupal1db.*;
MariaDB [(none)]> gewährt [email protected ] identifiziert durch 'Passwort';
Löschen Sie als Nächstes die Berechtigungen und verlassen Sie MySQL mit dem folgenden Befehl:
MariaDB [(none)]> Flush-Berechtigungen;
MariaDB [(none)]> exit;
Wenn Sie fertig sind, können Sie mit dem nächsten Schritt fortfahren.
Schritt 5:Drupal herunterladen
Als Nächstes müssen Sie die neueste Version von Drupal von der offiziellen Website herunterladen.
Ändern Sie zunächst das Verzeichnis mit dem folgenden Befehl in das Nginx-Webstammverzeichnis:
cd /var/www/html
Laden Sie als Nächstes die neueste Version von Drupal mit dem folgenden Befehl herunter:
wget -q https://www.drupal.org/download-latest/tar.gz -O drupal-latest.tar.gz
Als nächstes extrahieren Sie die heruntergeladene Datei mit dem folgenden Befehl:
tar -xf drupal-latest.tar.gz
Als nächstes kopieren Sie das extrahierte Verzeichnis nach drupal1 und drupal2:
cp -r drupal-9.1.5 drupal1
cp -r drupal-9.1.5 drupal2
Legen Sie als Nächstes den richtigen Besitz mit dem folgenden Befehl fest:
chown -R www-data:www-data /var/www/html/drupal*
Wenn Sie fertig sind, können Sie mit dem nächsten Schritt fortfahren.
Schritt 6:Nginx konfigurieren
Als Nächstes müssen Sie für jede Drupal-Instanz zwei virtuelle Nginx-Host-Konfigurationsdateien erstellen.
Erstellen Sie zunächst eine virtuelle Nginx-Host-Konfigurationsdatei für die erste Drupal-Instanz:
nano /etc/nginx/conf.d/drupal1.conf
Fügen Sie die folgenden Zeilen hinzu:
server {listen 80; root /var/www/html/drupal1; index index.php index.html index.htm; Servername drupal1.example.com; location / { try_files $uri /index.php?$query_string; } location @rewrite { rewrite ^/(.*)$ /index.php?q=$1; } location ~ [^/]\.php(/|$) { include snippets/fastcgi-php.conf; fastcgi_pass unix:/var/run/php/php7.4-fpm.sock; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; schließen Sie fastcgi_params ein; } location ~ ^/sites/.*/files/styles/ { # Für Drupal>=7 try_files $uri @rewrite; } location ~ ^(/[a-z\-]+)?/system/files/ { # Für Drupal>=7 try_files $uri /index.php?$query_string; }}
Speichern und schließen Sie die Datei, wenn Sie fertig sind.
Erstellen Sie als Nächstes eine virtuelle Nginx-Host-Konfigurationsdatei für die zweite Drupal-Instanz:
nano /etc/nginx/conf.d/drupal2.conf
Fügen Sie die folgenden Zeilen hinzu:
server {listen 80; root /var/www/html/drupal2; index index.php index.html index.htm; Servername drupal2.example.com; location / { try_files $uri /index.php?$query_string; } location @rewrite { rewrite ^/(.*)$ /index.php?q=$1; } location ~ [^/]\.php(/|$) { include snippets/fastcgi-php.conf; fastcgi_pass unix:/var/run/php/php7.4-fpm.sock; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; schließen Sie fastcgi_params ein; } location ~ ^/sites/.*/files/styles/ { # Für Drupal>=7 try_files $uri @rewrite; } location ~ ^(/[a-z\-]+)?/system/files/ { # Für Drupal>=7 try_files $uri /index.php?$query_string; }}
Speichern und schließen Sie die Datei, wenn Sie fertig sind, und überprüfen Sie dann Nginx mit dem folgenden Befehl auf Syntaxfehler:
nginx -t
Sie sollten die folgende Ausgabe sehen:
nginx:Die Syntax der Konfigurationsdatei /etc/nginx/nginx.conf ist oknginx:Der Test der Konfigurationsdatei /etc/nginx/nginx.conf ist erfolgreich
Starten Sie als Nächstes den Nginx-Dienst neu, um die Änderungen zu übernehmen:
systemctl startet nginx neu
Sie können den Status von Nginx auch mit dem folgenden Befehl überprüfen:
systemctl status nginx
Sie sollten die folgende Ausgabe erhalten:
Schritt 7:Zugriff auf Drupal
Öffnen Sie nun Ihren Webbrowser und geben Sie die URL http://drupal1.example.com ein oder http://drupal2.example.com . Sie werden wie unten gezeigt zum Drupal-Webinstallationsassistenten weitergeleitet:
Wählen Sie Ihre Sprache aus und klicken Sie auf Speichern und fortfahren Taste. Sie sollten die folgende Seite sehen:
Wählen Sie die Standard-Installationsart und klicken Sie auf Speichern und fortfahren Taste. Sie sollten die folgende Seite sehen:
Geben Sie Ihre Datenbankdetails ein und klicken Sie auf Speichern und fortfahren Taste. Sie sollten die folgende Seite sehen:
Geben Sie Ihre Site-Informationen ein und klicken Sie auf Speichern und fortfahren Taste. Sie sollten das Drupal-Dashboard auf der folgenden Seite sehen:
Schlussfolgerung
Im obigen Beitrag haben Sie gelernt, wie Sie mehrere Drupal-Instanzen mit Nginx auf einem Ubuntu 20.04-Server bereitstellen. Sie können jetzt beliebig viele Drupal-Instanzen auf Ihrem Server bereitstellen. Sie müssen nur den Domänennamen und den Drupal-Installationspfad für jede neue Drupal-Instanz definieren. Fühlen Sie sich frei, mich zu fragen, wenn Sie irgendwelche Fragen haben.