GNU/Linux >> LINUX-Kenntnisse >  >> Debian

So installieren Sie Drupal 9 mit Nginx und Lets Encrypt SSL unter Debian 10

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

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

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

Voraussetzungen

Für diese Anleitung testen wir unsere Drupal-Installation auf der neuesten Version von Debian Buster 10 mit 2 GB RAM, 50 GB freiem Speicherplatz und 2 CPUs. Außerdem benötigen wir die Root-Sudo-Rechte, um neue Pakete zu installieren und einige Systemsoftwarekonfigurationen zu bearbeiten.

Was werden wir tun?

  • Nginx-Webserver installieren
  • Installieren und konfigurieren Sie PHP-FPM
  • MariaDB installieren und konfigurieren
  • SSL Letsencrypt generieren
  • Nginx Virtualhost für Drupal 9 einrichten
  • Drupal 9-Quellcode herunterladen
  • Drupal 9-Nachinstallation

Schritt 1 – Nginx-Webserver installieren

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

Aktualisieren Sie verfügbare Repositories auf Ihrem System und aktualisieren Sie alle Pakete mit dem folgenden apt-Befehl auf die neueste Version.

sudo apt update
sudo apt upgrade

Installieren Sie als Nächstes die Nginx-Webserverpakete mit dem folgenden Befehl.

sudo apt install nginx -y

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

systemctl start nginx
systemctl enable nginx

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

systemctl status nginx

Unten sehen Sie das Ergebnis, das Sie erhalten.

Infolgedessen ist der Nginx-Dienst auf Debian Buster 10 betriebsbereit.

Schritt 2 – PHP-FPM installieren und konfigurieren

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

Installieren Sie die PHP- und PHP-FPM-Pakete 7.3 mit dem folgenden 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 abgeschlossen ist, gehen Sie in das Verzeichnis „/etc/php/7.3“ und bearbeiten Sie die Konfiguration „php.ini“ mit dem vim-Editor.

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

Entkommentieren und ändern Sie die Detailkonfiguration 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.

Starten Sie als Nächstes den PHP-FPM-Dienst neu und fügen Sie ihn zum Systemstart hinzu.

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

Der PHP-FPM-Dienst ist betriebsbereit und wird standardmäßig unter der Sockendatei

ausgeführt

Ü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.

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

Schritt 3 – MariaDB-Server installieren und konfigurieren

Nach der Installation der PHP- und PHP-FPM-Pakete 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

Starten Sie danach den MariaDB-Dienst und fügen Sie ihn zum Systemstart hinzu.

systemctl start mysql
systemctl enable mysql

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

Als Nächstes richten wir das Passwort für den standardmäßigen MariaDB-Root-Benutzer mit dem Befehl „mysql_secure_installation“ wie unten beschrieben ein.

mysql_secure_installation

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

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 erstellen eine neue Datenbank und einen neuen Benutzer für unsere Drupal-Installation.

Melden Sie sich mit dem Standard-Root-Benutzer und Ihrem Passwort wie unten beschrieben bei der MySQL-Shell an.

mysql -u root -p

Erstellen Sie eine neue Datenbank namens „drupaldb“ und den Benutzer „drupaluser“ mit dem Passwort „[email protected]“ mithilfe der unten stehenden 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 'Strg+d ' Schaltfläche, um die MySQL-Shell zu verlassen.

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

Schritt 4 - Generieren Sie SSL Letsencrypt

Für dieses Tutorial sichern wir die Drupal 9-Installation mit SSL Letsencrypt. Stellen Sie also sicher, dass Ihr Domainname in Ihre Server-IP-Adresse aufgelöst wird.

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

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

sudo apt install certbot -y

Stoppen Sie danach den Nginx-Dienst und generieren Sie das 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

Stellen Sie sicher, dass Sie die E-Mail-Adresse mit Ihrer eigenen ändern. Sobald alles abgeschlossen ist, sind Ihre SSL-Zertifikate im Verzeichnis „/etc/letsencrypt/live/ihredomain.com“ verfügbar.

Schritt 6 – Nginx Virtualhost für Drupal 9 einrichten

In diesem Schritt erstellen wir eine neue virtuelle Nginx-Hostkonfiguration für Drupal.

Wechseln Sie in das Verzeichnis etc/nginx/sites-available und erstellen Sie mit dem vim-Editor eine neue virtuelle Hostkonfiguration „drupal9“.

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

Ändern Sie den Domänennamen und den Pfad der SSL-Letsencrypt-Zertifikate durch Ihre eigenen, und fügen Sie sie 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 kein Fehler vorliegt, und starten Sie dann den Nginx-Dienst neu.

nginx -t
systemctl restart nginx

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

Schritt 6 - Drupal herunterladen

In diesem Schritt laden wir die neueste Drupal-Version 9 herunter und installieren sie im Verzeichnis „/var/www“.

Gehen Sie nun in das Verzeichnis „/var/www“ und laden Sie den Drupal-Quellcode mit dem wget-Befehl wie unten beschrieben herunter.

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/

Ändern Sie danach den Besitz 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“.

Schritt 7 - Drupal-Nachinstallation

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

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

Und Sie werden auf die sichere HTTPS-Verbindung umgeleitet.

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

Wählen Sie Ihre bevorzugte Sprache aus und klicken Sie auf „Speichern und fortfahren“. ' Schaltfläche.

Wählen Sie Ihr Drupal-Installationsprofil aus und klicken Sie auf „Speichern und fortfahren“. '. Wenn Sie Drupal zum ersten Mal installieren, wählen Sie „Standard“. ' Installationsprofil.

Geben Sie für die MySQL-Datenbankkonfigurationen details database created on top ein und klicken Sie auf „Speichern und fortfahren ' Schaltfläche.

Und Sie erhalten den Drupal-Installationsprozess wie folgt.

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

Klicken Sie auf "Speichern und fortfahren". ' Schaltfläche.

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

Klicken Sie auf "Konfiguration". '-Menü oben, und Sie erhalten das Drupal Admin-Konfigurations-Dashboard.

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


Debian
  1. So installieren Sie Nextcloud mit Nginx und Lets Encrypt SSL unter Ubuntu 20.04 LTS

  2. Installieren Sie Lets Encrypt und Secure Nginx mit SSL/TLS in Debian 9

  3. Installieren Sie Automad CMS mit Nginx und Lets Encrypt SSL auf Debian 10

  4. So installieren Sie OpenCart mit Nginx und Lets Encrypt unter Debian 10

  5. So installieren Sie Drupal mit Nginx und Lets Encrypt SSL unter Ubuntu 20.04 LTS

So installieren Sie Lighttpd mit PHP, MariaDB und Lets Encrypt SSL unter Debian 10

So installieren Sie MyBB Forum mit Nginx und Lets Encrypt unter Debian 10

So installieren Sie Wekan Kanban mit Nginx und Lets Encrypt SSL unter Debian 10

So installieren Sie Drupal mit Nginx und Let’s Encrypt SSL unter Debian 11

So installieren Sie Joomla mit Nginx und Let’s Encrypt SSL unter Debian 11

So installieren Sie WordPress mit Nginx und Let’s Encrypt SSL unter Debian 11