Wie man Drupal mit Apache und Let’s Encrypt SSL unter Debian 11 installiert

Drupal ist ein kostenloses und quelloffenes Content-Management-System, das auf dem LAMP-Stack basiert. Drupal verfügt über großartige Standardfunktionen, mit denen du leistungsstarke Websites und Blogs erstellen kannst. Es wird mit einer Vielzahl von Themes, Plugins und Widgets geliefert, mit denen du auch ohne Programmierkenntnisse eine Website erstellen kannst. Es bietet viele Funktionen wie Multi-Site-Unterstützung, Unterstützung für mehrere Sprachen, Kommentarsystem, RSS-Feed, Benutzerregistrierung und vieles mehr.

In diesem Beitrag zeigen wir dir, wie du Drupal CMS mit Apache und Let’s Encrypt SSL unter Debian 11 installierst.

Voraussetzungen

  • Ein Server, auf dem Debian 11 läuft.
  • Ein gültiger Domainname, der auf die IP deines Servers zeigt.
  • Ein Root-Passwort ist auf dem Server konfiguriert.

LAMP-Stack installieren

Drupal basiert auf dem LAMP-Stack. Daher muss der LAMP-Stack auf deinem Server installiert sein. Wenn er nicht installiert ist, kannst du ihn mit folgendem Befehl installieren:

apt-get install apache2 mariadb-server mariadb-client php libapache2-mod-php php-cli php-mysql php-zip php-gd php-fpm php-json php-common php-intl php-mbstring php-curl php-xml php-pear php-tidy php-soap php-bcmath php-xmlrpc -y

Sobald der LAMP-Stack installiert ist, bearbeite die Datei php.ini und ändere einige Standardeinstellungen:

nano /etc/php/7.4/apache2/php.ini

Ändere die folgenden Zeilen:

memory_limit = 256M
upload_max_filesize = 32M
max_execution_time = 300
date.timezone = Asia/Kolkata

Speichere und schließe die Datei, wenn du fertig bist.

Eine Drupal-Datenbank erstellen

Drupal verwendet MariaDB als Datenbank-Backend. Du musst also eine Datenbank und einen Benutzer für Drupal erstellen.

Melde dich zunächst mit folgendem Befehl bei MariaDB an:

mysql

Sobald du eingeloggt bist, erstelle eine Datenbank und einen Benutzer mit dem folgenden Befehl:

MariaDB [(none)]> CREATE DATABASE drupaldb;
MariaDB [(none)]> CREATE USER 'drupaluser'@'localhost' IDENTIFIED BY "securepassword";

Als Nächstes erteilst du der Drupal-Datenbank mit folgendem Befehl alle Berechtigungen:

MariaDB [(none)]> GRANT ALL ON drupaldb.* TO 'drupaluser'@'localhost' IDENTIFIED BY "securepassword";

Lösche die Berechtigungen und verlasse MariaDB mit folgendem Befehl:

MariaDB [(none)]> FLUSH PRIVILEGES;
MariaDB [(none)]> EXIT;

Drupal herunterladen

Gehe zunächst auf die Drupal-Website und lade die neueste Version von Drupal mit folgendem Befehl herunter:

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

Sobald Drupal heruntergeladen ist, entpackst du die heruntergeladene Datei mit dem folgenden Befehl:

tar -xvf drupal.tar.gz

Als Nächstes verschiebst du das entpackte Verzeichnis in das Apache-Standard-Stammverzeichnis:

mv drupal-* /var/www/html/drupal

Als Nächstes änderst du mit folgendem Befehl die Eigentums- und Zugriffsrechte für das Drupal-Verzeichnis:

chown -R www-data:www-data /var/www/html/drupal/
chmod -R 755 /var/www/html/drupal/

Einen virtuellen Apache-Host für Drupal erstellen

Als Nächstes musst du eine Konfigurationsdatei für einen virtuellen Apache-Host erstellen, um Drupal zu hosten. Du kannst sie mit dem folgenden Befehl erstellen:

nano /etc/apache2/sites-available/drupal.conf

Füge die folgenden Zeilen hinzu:

<VirtualHost *:80>
     ServerAdmin [email protected]
     DocumentRoot /var/www/html/drupal/
     ServerName  drupal.example.com  

     ErrorLog ${APACHE_LOG_DIR}/error.log
     CustomLog ${APACHE_LOG_DIR}/access.log combined

     <Directory /var/www/html/drupal/>
            Options FollowSymlinks
            AllowOverride All
            Require all granted
     </Directory>

     <Directory /var/www/html/>
            RewriteEngine on
            RewriteBase /
            RewriteCond %{REQUEST_FILENAME} !-f
            RewriteCond %{REQUEST_FILENAME} !-d
            RewriteRule ^(.*)$ index.php?q=$1 [L,QSA]
    </Directory>
</VirtualHost>

Speichere und schließe die Datei und aktiviere den virtuellen Host für Drupal und das Apache Rewrite-Modul mit folgendem Befehl:

a2ensite drupal.conf
a2enmod rewrite

Starte anschließend den Apache-Dienst neu, um die Änderungen zu übernehmen:

systemctl restart apache2

Um den Status des Apache zu überprüfen, führe den folgenden Befehl aus:

systemctl status apache2

Du solltest die folgende Ausgabe erhalten:

? apache2.service - The Apache HTTP Server
     Loaded: loaded (/lib/systemd/system/apache2.service; enabled; vendor preset: enabled)
     Active: active (running) since Sat 2021-09-18 14:59:40 UTC; 5s ago
       Docs: https://httpd.apache.org/docs/2.4/
    Process: 19698 ExecStart=/usr/sbin/apachectl start (code=exited, status=0/SUCCESS)
   Main PID: 19703 (apache2)
      Tasks: 6 (limit: 2341)
     Memory: 15.3M
        CPU: 78ms
     CGroup: /system.slice/apache2.service
             ??19703 /usr/sbin/apache2 -k start
             ??19704 /usr/sbin/apache2 -k start
             ??19705 /usr/sbin/apache2 -k start
             ??19706 /usr/sbin/apache2 -k start
             ??19707 /usr/sbin/apache2 -k start
             ??19708 /usr/sbin/apache2 -k start

Jetzt ist der Apache-Webserver so konfiguriert, dass er Drupal bedienen kann. Du kannst jetzt mit dem nächsten Schritt fortfahren.

Zugriff auf die Drupal-Website

Öffne nun deinen Webbrowser und rufe Drupal über die URL http://drupal.example.com auf. Du wirst auf die folgende Seite weitergeleitet:

Sprache wählen

Wähle die englische Sprache und klicke auf die Schaltfläche Speichern und weiter:

Installationsprofil

Wähle ein Installationsprofil und klicke auf die Schaltfläche Speichern und fort fahren. Du solltest die folgende Seite sehen:

Datenbank-Konfiguration

Auf der Seite Datenbankkonfiguration gibst du alle erforderlichen Datenbankdaten ein, wie z. B. den Datenbanknamen, den Benutzernamen und das Passwort der Datenbank sowie den Datenbank-Host, und klickst dann auf die Schaltfläche Speichern und Weiter:

Informationen zur Website

Regionale Einstellungen

Auf der Seite Drupal-Site-Konfiguration gibst du deinen Site-Namen, deinen Admin-Benutzernamen und dein Passwort ein und klickst dann auf die Schaltfläche Speichern und Weiter, um die Installation von Drupal zu starten. Sobald Drupal installiert ist, solltest du das Drupal-Dashboard in der folgenden Abbildung sehen:

Anmeldung bei Drupal

Let’s Encrypt SSL-Unterstützung auf der Drupal-Website aktivieren

Es ist immer eine gute Idee, deine Website mit Let’s Encrypt SSL zu sichern. Zunächst musst du den Certbot-Client installieren, um das SSL zu installieren und zu verwalten. Standardmäßig ist das Certbot-Paket im Standard-Repository von Debian 11 enthalten, sodass du es mit dem folgenden Befehl installieren kannst:

apt-get install python3-certbot-apache -y

Sobald Certbot installiert ist, führe den folgenden Befehl aus, um deine Website mit Let’s Encrypt SSL zu sichern:

certbot --apache -d drupal.example.com

Du wirst aufgefordert, deine E-Mail-Adresse anzugeben und die Nutzungsbedingungen zu akzeptieren (siehe unten):

Saving debug log to /var/log/letsencrypt/letsencrypt.log
Plugins selected: Authenticator standalone, Installer None
Enter email address (used for urgent renewal and security notices) (Enter 'c' to
cancel): [email protected]

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Please read the Terms of Service at
https://letsencrypt.org/documents/LE-SA-v1.2-November-15-2017.pdf. You must
agree in order to register with the ACME server at
https://acme-v02.api.letsencrypt.org/directory
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
(A)gree/(C)ancel: A

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Would you be willing to share your email address with the Electronic Frontier
Foundation, a founding partner of the Let's Encrypt project and the non-profit
organization that develops Certbot? We'd like to send you email about our work
encrypting the web, EFF news, campaigns, and ways to support digital freedom.
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
(Y)es/(N)o: Y
Plugins selected: Authenticator apache, Installer apache
Obtaining a new certificate
Performing the following challenges:
http-01 challenge for drupal.example.com
Enabled Apache rewrite module
Waiting for verification...
Cleaning up challenges
Created an SSL vhost at /etc/apache2/sites-available/drupal-le-ssl.conf
Enabled Apache socache_shmcb module
Enabled Apache ssl module
Deploying Certificate to VirtualHost /etc/apache2/sites-available/drupal-le-ssl.conf
Enabling available site: /etc/apache2/sites-available/drupal-le-ssl.conf

Als Nächstes wählst du aus, ob der HTTP-Verkehr auf HTTPS umgeleitet werden soll oder nicht (siehe unten):

Please choose whether or not to redirect HTTP traffic to HTTPS, removing HTTP access.
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
1: No redirect - Make no further changes to the webserver configuration.
2: Redirect - Make all requests redirect to secure HTTPS access. Choose this for
new sites, or if you're confident your site works on HTTPS. You can undo this
change by editing your web server's configuration.
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Select the appropriate number [1-2] then [enter] (press 'c' to cancel): 2

Gib 2 ein und drücke die Eingabetaste, um Let’s Encrypt SSL für deine Website zu installieren:

Enabled Apache rewrite module
Redirecting vhost in /etc/apache2/sites-enabled/drupal.conf to ssl vhost in /etc/apache2/sites-available/drupal-le-ssl.conf

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Congratulations! You have successfully enabled https://drupal.example.com

You should test your configuration at:
https://www.ssllabs.com/ssltest/analyze.html?d=drupal.example.com
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

IMPORTANT NOTES:
 - Congratulations! Your certificate and chain have been saved at:
   /etc/letsencrypt/live/drupal.example.com/fullchain.pem
   Your key file has been saved at:
   /etc/letsencrypt/live/drupal.example.com/privkey.pem
   Your cert will expire on 2021-04-20. To obtain a new or tweaked
   version of this certificate in the future, simply run certbot again
   with the "certonly" option. To non-interactively renew *all* of
   your certificates, run "certbot renew"
 - If you like Certbot, please consider supporting our work by:

   Donating to ISRG / Let's Encrypt:   https://letsencrypt.org/donate
   Donating to EFF:                    https://eff.org/donate-le

Fazit

Das war’s für den Moment. Du hast Drupal erfolgreich mit Let’s Encrypt SSL auf Debian 11 installiert. Jetzt kannst du auch ohne Programmierkenntnisse deinen eigenen Blog oder deine eigene Website erstellen. Wenn du noch Fragen hast, kannst du mich gerne fragen.

Das könnte dich auch interessieren …