Wie installiert man Drupal 9 mit Nginx und Let’s Encrypt SSL auf Debian 10

Drupal ist ein bekanntes Open-Source-Content-Management-System auf PHP-Basis. Es ist kostenlos erhältlich und wird unter der GNU General Public License veröffentlicht. Drupal kann für alle Größenordnungen von Websites verwendet werden, von riesigen internationalen Websites bis hin zu persönlichen Blogs und Websites von Unternehmen oder Behörden.

Der Kernteil von drupal heißt „Drupal Core“, er enthält das grundlegende Content-Management-System, die Benutzerverwaltung, die Menüverwaltung, die Anpassung des Layouts und die Systemverwaltung. Drupal Core kann durch Plugins erweitert werden, bis jetzt wurden der Drupal-Community mehr als 31.000 Module für Drupal zur Verfügung gestellt.

In diesem Tutorial werden wir Ihnen zeigen, wie Sie Drupal 9 auf dem Debian Buster 10 installieren. Wir werden Drupal unter dem LEMP-Stack (Linux, Nginx, MySQL/MariaDB und PHP-FPM) laufen lassen und die Installation mit SSL Letsencrypt sichern.

Voraussetzungen

FÃ?r diesen Leitfaden werden wir unsere Drupal-Installation auf der neuesten Version von Debian Buster 10 mit 2 GB RAM, 50 GB freiem Festplattenspeicher und 2 CPUs testen. Außerdem benötigen wir die root sudo-Privilegien für die Installation neuer Pakete und die Bearbeitung einiger Systemsoftware-Konfigurationen.

Was werden wir tun?

  • Nginx-Webserver installieren
  • Installieren und Konfigurieren von PHP-FPM
  • Installieren und Konfigurieren von MariaDB
  • SSL Letsencrypt erzeugen
  • Einrichten von Nginx Virtualhost für Drupal 9
  • Drupal 9-Quellcode herunterladen
  • Drupal 9 Nach der Installation

Schritt 1 – Nginx-Webserver installieren

Zuerst werden wir den Nginx-Webserver auf unserem Debian-Server installieren.

Aktualisieren Sie verfügbare Repositorys auf Ihrem System und aktualisieren Sie alle Pakete auf die neueste Version, indem Sie den Befehl apt unten verwenden.

sudo apt update
sudo apt upgrade

Installieren Sie anschließend die Nginx-Webserver-Pakete mit dem folgenden Befehl.

sudo apt install nginx -y

Sobald die gesamte Installation abgeschlossen ist, starten Sie den Nginx-Dienst und fügen ihn dem Systemstart hinzu.

systemctl start nginx
systemctl enable nginx

Der Nginx-Dienst ist einsatzbereit, überprüfen Sie ihn mit dem folgenden Befehl.

systemctl status nginx

Unten sehen Sie das Ergebnis, das Sie erhalten werden.

Nginx installieren

Infolgedessen ist der Nginx-Dienst auf dem Debian Buster 10 lauffähig.

Schritt 2 – Installieren und Konfigurieren von PHP-FPM

In diesem Schritt werden wir PHP-FPM 7.3 auf Debian 10 für unsere Drupal-Installation installieren und konfigurieren.

Installieren Sie die PHP- und PHP-FPM-Pakete 7.3 mit dem unten stehenden apt-Befehl.

sudo apt install php php-fpm php-gd php-common php-mysql php-apcu php-gmp php-curl php-intl php-mbstring php-xmlrpc php-gd php-xml php-cli php-zip -y

Sobald die gesamte Installation beendet ist, gehen Sie in das Verzeichnis ‚/etc/php/7.3‘ und editieren Sie die Konfiguration ‚php.ini‘ mit dem Editor vim.

cd /etc/php/7.3/fpm/
vim php.ini

Kommentieren Sie die Konfiguration auf und ändern Sie die Details wie unten beschrieben.

date.timezone = Asia/Singapore
memory_limit = 256M
upload_max_filesize = 64M
max_execution_time = 600
cgi.fix_pathinfo = 0

Speichern und schließen Sie ihn.

Als nächstes starten Sie den PHP-FPM-Dienst neu und fügen ihn dem Systemstart hinzu.

systemctl restart php7.3-fpm
systemctl enable php7.3-fpm

Der PHP-FPM-Dienst ist einsatzbereit und läuft standardmäßig unter der Sock-Datei

php-fpm-Dienst starten

Überprüfen Sie den PHP-FPM-Dienst mit dem folgenden Befehl.

ss -plnt | grep php
systemctl status php7.3-fpm

Unten sehen Sie das Ergebnis, das Sie erhalten werden.

php-fpm-Dienst und Sockendatei prüfen

Als Ergebnis wurde die Installation und Konfiguration von PHP-FPM für Drupal 9 auf Debian Buster 10 abgeschlossen.

Schritt 3 – Installieren und Konfigurieren von MariaDB Server

Nach der Installation von PHP- und PHP-FPM-Paketen werden wir die MariaDB-Datenbank installieren und eine neue Datenbank für Drupal 9 erstellen.

Installieren Sie MariaDB-Pakete mit dem folgenden apt-Befehl.

sudo apt install mariadb-server mariadb-client

Danach starten Sie den MariaDB-Dienst und fügen ihn zum Systemstart hinzu.

systemctl start mysql
systemctl enable mysql

Als Ergebnis wurde die MariaDB-Datenbank auf dem Debian-Server installiert.

MySQL-Root-Passwort einrichten

Als nächstes werden wir das Passwort für den Standard-MariaDB-Root-Benutzer einrichten, indem wir den Befehl ‚mysql_secure_installation‘ wie unten beschrieben verwenden.

mysql_secure_installation

Geben Sie das Passwort für Standard-Root ein und geben Sie ‚Y‚ für alle Optionen ein.

Enter current password for root (enter for none): 
OK, successfully used password, moving on...
Set a root password? [Y/n] Y
Remove anonymous users? [Y/n] Y
Disallow root login remotely? [Y/n] Y
Remove test database and access to it? [Y/n] Y
Reload privilege tables now? [Y/n] Y

Und das MariaDB-Root-Passwort wurde konfiguriert.

Als nächstes benötigen wir Zugriff auf die MySQL-Shell und müssen eine neue Datenbank und einen neuen Benutzer für unsere Drupal-Installation erstellen.

Melden Sie sich in der MySQL-Shell mit dem Standardbenutzer root und Ihrem Passwort wie unten angegeben an.

mysql -u root -p

Erstellen Sie eine neue Datenbank mit dem Namen ‚drupaldb‘ und dem Benutzer ‚drupaluser‘ mit dem Passwort ‚[email protected]‘ unter Verwendung der folgenden MySQL-Abfragen.

create database drupaldb;
create user [email protected] identified by '[email protected]';
grant all privileges on drupaldb.* to [email protected] identified by '[email protected]';
flush privileges;

Geben Sie ‚exit‚ ein oder drücken Sie die Taste ‚Strg+d‚, um die MySQL-Shell zu verlassen.

Datenbank für drupal erstellen

Als Ergebnis ist die neue Datenbank und der neue Benutzer für die Drupal-Installation erstellt worden.

Schritt 4 – SSL Letsencrypt erzeugen

Für dieses Tutorial werden wir die Drupal 9-Installation mit SSL Letsencrypt sichern. Stellen Sie also sicher, dass Sie einen Domainnamen haben, der in die IP-Adresse Ihres Servers aufgelöst wurde.

Um SSL Letsencrypt verwenden zu können, müssen wir SSL-Zertifikate mit dem Tool certbot generieren.

Installieren Sie das certbot-Tool mit dem untenstehenden apt-Befehl.

sudo apt install certbot -y

Danach stoppen Sie den Nginx-Dienst und generieren die SSL Letsencrypt für Ihren Drupal-Domainnamen mit dem folgenden Befehl.

systemctl stop nginx
certbot certonly --rsa-key-size 2048 --standalone --agree-tos --no-eff-email --email [email protected] -d drupal.hakase-labs.io

Achten Sie darauf, die Email-Adresse mit Ihrer eigenen zu ändern. Sobald alles abgeschlossen ist, werden Ihre SSL-Zertifikate im Verzeichnis ‚/etc/letsencrypt/live/yourdomain.com‘ verfügbar sein.

Schritt 6 – Einrichten von Nginx Virtualhost für Drupal 9

In diesem Schritt werden wir eine neue virtuelle Nginx-Host-Konfiguration für Drupal erstellen.

Gehen Sie in das Verzeichnis etc/nginx/sites-available und erstellen Sie eine neue Konfiguration des virtuellen Hosts ‚drupal9‘ mit dem Editor vim.

cd /etc/nginx/sites-available/
vim drupal9

Ändern Sie den Domainnamen und den Pfad der SSL Letsencrypt-Zertifikate mit Ihren eigenen, und fügen Sie sie dort ein.

server {
    server_name drupal.hakase-labs.io;
    root /var/www/drupal9; ## <-- Your only path reference.
listen 80;
listen [::]:80;
listen 443 default ssl;

ssl_certificate      /etc/letsencrypt/live/drupal.hakase-labs.io/fullchain.pem;
ssl_certificate_key  /etc/letsencrypt/live/drupal.hakase-labs.io/privkey.pem;

# Redirect HTTP to HTTPS
if ($scheme = http) {
return 301 https://$server_name$request_uri;
}

location = /favicon.ico {
log_not_found off;
access_log off;
}

location = /robots.txt {
allow all;
log_not_found off;
access_log off;
}

# Very rarely should these ever be accessed outside of your lan
location ~* \.(txt|log)$ {
allow 192.168.0.0/16;
deny all;
}

location ~ \..*/.*\.php$ {
return 403;
}

location ~ ^/sites/.*/private/ {
return 403;
}

# Block access to "hidden" files and directories whose names begin with a
# period. This includes directories used by version control systems such
# as Subversion or Git to store control files.
location ~ (^|/)\. {
return 403;
}

location / {
# try_files $uri @rewrite; # For Drupal <= 6
try_files $uri /index.php?$query_string; # For Drupal >= 7
}

location @rewrite {
rewrite ^/(.*)$ /index.php?q=$1;
}

# In Drupal 8, we must also match new paths where the '.php' appears in the middle,
# such as update.php/selection. The rule we use is strict, and only allows this pattern
# with the update.php front controller.  This allows legacy path aliases in the form of
# blog/index.php/legacy-path to continue to route to Drupal nodes. If you do not have
# any paths like that, then you might prefer to use a laxer rule, such as:
#   location ~ \.php(/|$) {
# The laxer rule will continue to work if Drupal uses this new URL pattern with front
# controllers other than update.php in a future release.
location ~ '\.php$|^/update.php' {
fastcgi_split_path_info ^(.+?\.php)(|/.*)$;
#NOTE: You should have "cgi.fix_pathinfo = 0;" in php.ini
include fastcgi_params;
include snippets/fastcgi-php.conf;
fastcgi_param SCRIPT_FILENAME $request_filename;
fastcgi_intercept_errors on;
fastcgi_pass unix:/run/php/php7.3-fpm.sock;
}

# Fighting with Styles? This little gem is amazing.
# location ~ ^/sites/.*/files/imagecache/ { # For Drupal <= 6
location ~ ^/sites/.*/files/styles/ { # For Drpal >= 7
try_files $uri @rewrite;
}

location ~* \.(js|css|png|jpg|jpeg|gif|ico)$ {
expires max;
log_not_found off;
}
}

Speichern und schließen.

Als nächstes aktivieren Sie die Konfiguration des virtuellen Nginx-Hosts für Drupal.

ln -s /etc/nginx/sites-available/drupal9 /etc/nginx/sites-enabled/

Testen Sie nun die Nginx-Konfiguration und stellen Sie sicher, dass es keinen Fehler gibt, dann starten Sie den Nginx-Dienst neu.

nginx -t
systemctl restart nginx

Als Ergebnis ist die Konfiguration des virtuellen Nginx-Hosts für Drupal abgeschlossen.

Virtuellen Nginx-Host für Drupal einrichten

Schritt 6 – Drupal herunterladen

In diesem Schritt werden wir die neueste Drupal-Version 9 herunterladen und in das Verzeichnis ‚/var/www‘ installieren.

Gehen Sie nun in das Verzeichnis ‚/var/www‘ und laden Sie den Drupal-Quellcode herunter, indem Sie den Befehl wget wie unten beschrieben verwenden.

cd /var/www/
wget -q https://www.drupal.org/download-latest/tar.gz -O drupal-latest.tar.gz

Extrahieren Sie den drupal-Quellcode und benennen Sie das Verzeichnis in ‚drupal9‘ um.

tar -xf drupal-latest.tar.gz
mv drupal-9*/ drupal9/

Danach ändern Sie den Besitzer des Drupal-Installationsverzeichnisses auf den Benutzer ‚www-data‘.

chown -R www-data:www-data /var/www/drupal9

Folglich befindet sich das Drupal-Installationsverzeichnis im Verzeichnis ‚/var/www/drupal9‘.

Drupal 9-Quellcode herunterladen

Schritt 7 – Drupal Post-Installation

Öffnen Sie Ihren Webbrowser und geben Sie Ihre Drupal-URL-Installation in die Adressleiste ein.

https://drupal.hakase-labs.io/

Sie werden dann auf die sichere HTTPS-Verbindung umgeleitet.

Wählen Sie nun die Standardsprache für Ihre Drupal-Installation. Die Standardsprache ist ‚Englisch‚.

Drupal Setup-Sprache

Wählen Sie als bevorzugte Sprache und klicken Sie auf die Schaltfläche ‚Speichern und weiter‚.

Wählen Sie Ihr Drupal-Installationsprofil und klicken Sie auf ‚Speichern und weiter‚. Falls Sie Drupal zum ersten Mal installieren, wählen Sie das ‚Standard‚-Installationsprofil.

Drupal-Installationstyp

Für die MySQL-Datenbankkonfigurationen geben Sie die Details der Datenbank, die oben erstellt wurde, ein und klicken Sie auf die Schaltfläche ‚Speichern und weiter‚.

Datenbank für Drupal einrichten

Und Sie erhalten den Drupal-Installationsprozess wie unten beschrieben.

Drupal-Installationsprozess

Sobald die gesamte Installation abgeschlossen ist, konfigurieren Sie Ihren Site-Namen, Admin-Benutzer, Passwort, E-Mail usw.

Drupal-Site-Konfiguration

Klicken Sie auf die Schaltfläche ‚Speichern und weiter‚.

Nun werden Sie auf die Drupal-Standardindexseite wie unten gezeigt weitergeleitet.

drupal-Startseite

Klicken Sie auf das Menü ‚Konfiguration‚ auf t op, und Sie erhalten das Drupal Admin-Konfigurations-Dashboard.

Drupal Admin Dashboard

Infolgedessen wurde die Installation von Drupal 9 mit dem LEMP-Stack auf Debian Buster 10 erfolgreich abgeschlossen.

Das könnte Dich auch interessieren …