So installierst du Drupal auf Alma Linux 9

Drupal ist ein Open-Source Content Management System (CMS), das für die Erstellung und Verwaltung von Websites verwendet wird. Drupal ist für seine Flexibilität und Robustheit bekannt und ermöglicht es den Nutzern, Inhalte zu erstellen und zu organisieren, die Präsentation anzupassen, administrative Aufgaben zu automatisieren und Nutzerrollen und -rechte zu verwalten. Besonders beliebt ist die modulare Architektur, die es Entwicklern ermöglicht, die Funktionen durch Tausende von Zusatzmodulen und Themes zu erweitern und zu verändern. Drupal ist hoch skalierbar und eignet sich daher sowohl für kleine persönliche Blogs als auch für große Unternehmens- und Behördenwebsites. Die starke Unterstützung durch die Community und die umfassende Dokumentation erhöhen die Benutzerfreundlichkeit und das Entwicklungspotenzial zusätzlich.

In diesem Tutorium führen wir dich durch die Installation von Drupal auf einem Alma Linux 9 Server mit dem LAMP-Stack (Linux, Apache/Httpd, MariaDB und PHP). Danach zeigen wir dir, wie du deine Drupal-Installation mit Firewalld und SSL-Zertifikaten mit Certbot und Let’s Encrypt absicherst.

Voraussetzungen

Bevor du beginnst, solltest du sicherstellen, dass du die folgenden Voraussetzungen erfüllst:

  • Ein Alma Linux 9 Server.
  • Ein Nicht-Root-Benutzer mit Administrator-Rechten.
  • Ein Domainname, der auf eine Server-IP-Adresse zeigt.
  • Ein SELinux mit dem Status permissive.

Installieren der Abhängigkeiten

Die neueste Version von Drupal benötigt PHP 8.3, das du über ein Drittanbieter-Repository installieren musst. Außerdem musst du weitere Abhängigkeiten installieren, darunter den Httpd-Webserver und den MariaDB-Server.

Bevor du die Abhängigkeiten installierst, füge das EPEL- und Remi-Repository zu deinem Alma Linux Server hinzu. Gib y ein, wenn du zum Hinzufügen des Repositorys aufgefordert wirst.

sudo dnf install epel-release dnf-utils http://rpms.remirepo.net/enterprise/remi-release-9.rpm

In RHEL-basierten Distributionen sind einige Pakete als Repository-Module enthalten. Aktiviere das Repository-Modul für PHP 8.3 über das Remi-Repository mit dem folgenden Befehl.

sudo dnf module reset php
sudo dnf module enable php:remi-8.3

php repo aktivieren

Installiere nun die LAMP-Stack-Pakete (Apache/Httpd, MariaDB und PHP) mit dem unten stehenden dnf-Befehl. Wenn du dazu aufgefordert wirst, gib y ein, um die Installation zu bestätigen.

sudo dnf install httpd mariadb-server php php-cli php-devel php-mbstring php-gd php-xml php-curl php-mysqlnd php-pdo php-json php-opcache php-pear php-pecl-apcu php-pecl-crypto

deps installieren

Nachdem die Installation abgeschlossen ist, starte und aktiviere den httpd-Dienst mit dem unten stehenden Befehl.

sudo systemctl start httpd
sudo systemctl enable httpd

Starte und aktiviere dann den mariadb-Dienst mit dem unten stehenden Befehl.

sudo systemctl start mariadb
sudo systemctl enable mariadb

Überprüfe abschließend die PHP-Version mit dem folgenden Befehl. Du wirst sehen, dass PHP 8.3 auf deinem System installiert ist.

php -v
php -m

php prüfen

Firewalld einrichten

Standardmäßig ist die Firewalld auf Alma Linux eingerichtet und läuft. Du musst den Zugang zu HTTP- und HTTPS-Protokollen über die Firewalld öffnen und den Datenverkehr zu deiner Drupal-Installation zulassen.

Füge sowohl den HTTP- als auch den HTTPS-Dienst mit dem unten stehenden Befehl zu firewalld hinzu. Lade dann firewalld neu, um die Änderungen zu übernehmen.

sudo firewall-cmd --add-service={http,https} --permanent
sudo firewall-cmd --reload

Führe nun den folgenden Befehl aus, um den Status der Firewalld zu überprüfen und die aktivierten Regeln aufzulisten. Du wirst sehen, dass sowohl HTTP- als auch HTTPS-Dienste zur Firewalld hinzugefügt wurden.

sudo firewall-cmd --list-all

firewalld einrichten

PHP einrichten

In diesem Abschnitt wirst du PHP einrichten, indem du die Standardkonfiguration /etc/php.ini bearbeitest und die zusätzliche Erweiterung uploadprogress über PECL (PHP Extension Community Library) installierst. Die Uploadprogress-Erweiterung wird von Drupal benötigt, ist aber nur als PECL-Paket erhältlich.

Öffne die PHP-Konfigurationsdatei /etc/php.ini mit dem nano-Editor-Befehl unten.

sudo nano /etc/php.ini

Ändere die Standardkonfiguration wie folgt. Achte darauf, dass du die Optionen memory_limit und date.timezone an deine aktuelle Umgebung anpasst.

memory_limit = 512M
upload_max_filesize = 60M
max_execution_time = 300
date.timezone = Europe/Stockholm

Speichere und beende die Datei, wenn du fertig bist.

Führe nun den folgenden Befehl aus, um das uploadprogress-Modul in deinem System zu installieren. Das Modul uploadprogress ist im PECL-Repository verfügbar, nicht im Package Repository.

sudo pecl install uploadprogress

Sobald die Installation abgeschlossen ist, erhältst du die folgende Ausgabe:

uploadprogress installieren

Als Nächstes führst du den folgenden Befehl aus, um eine neue Konfiguration für die Aktivierung der uploadprogress-Erweiterung zu erstellen.

cat <<EOF | sudo tee /etc/php.d/uploadprogress.ini
; configuration for php uploadprogress module
; priority 15
extension=uploadprogress.so
EOF

Starte den httpd-Dienst neu, um die Änderungen in PHP zu übernehmen.

sudo systemctl restart httpd

Überprüfe abschließend das Modul uploadprogress mit dem folgenden Befehl. Vergewissere dich, dass das uploadprogress-Modul in deiner PHP-Installation aktiviert ist.

php -m | grep uploadprogress

Setup Uploadfortschritt

MariaDB einrichten

Nachdem du PHP konfiguriert hast, musst du deine MariaDB Serverinstallation konfigurieren. Du wirst MariaDB über die Kommandozeile sichern und dann über den MariaDB-Client eine neue Datenbank und einen neuen Benutzer für Drupal erstellen.

Sichere deinen MariaDB-Server mit dem unten stehenden Befehl.

sudo mariadb-secure-installation

Gib während des Vorgangs Y ein, um die neue Konfiguration zu bestätigen und anzuwenden, oder N, um die Konfiguration zu verwerfen. Im Folgenden sind die MariaDB-Konfigurationen aufgeführt, nach denen du gefragt wirst:

  • Wechsel zu unix_socket authentication? Gib n ein und drücke ENTER. Der Standard-MariaDB-Root-Benutzer ist bereits geschützt. Optional kannst du ihn auch aktivieren, indem du y für yes eingibst.
  • Ändere das Root-Passwort? Gib y ein, um zu bestätigen und dein neues MariaDB Root-Passwort einzurichten.
  • Anonymen Benutzer entfernen? Gib y ein, um zu bestätigen.
  • Root-Login aus der Ferne verbieten? Gib zur Bestätigung y ein. Wenn du den MariaDB Root-Benutzer verwendest, wird nur eine lokale Verbindung zugelassen.
  • Die Testdatenbank und den Zugriff auf sie entfernen? Bestätige mit y und entferne die Standarddatenbank „test“.
  • Gib abschließend erneut y ein, um alle Tabellenrechte auf deinem MariaDB-Server neu zu laden und die neuen Änderungen anzuwenden.

Melde dich mit dem unten stehenden Befehl mariadb am MariaDB-Server an. Gib dein MariaDB Root-Passwort ein, wenn du dazu aufgefordert wirst.

sudo mariadb -u root -p

Führe nun die folgenden Abfragen aus, um eine neue Datenbank drupaldb, einen Benutzer drupal und das Passwort p4ssword zu erstellen. Diese Datenbank wird von Drupal verwendet, also passe die folgenden Datenbankdetails mit deinen Informationen an.

CREATE DATABASE drupaldb;
CREATE USER drupal@localhost IDENTIFIED BY 'p4ssword';
GRANT ALL ON drupaldb.* TO drupal@localhost WITH GRANT OPTION;
FLUSH PRIVILEGES;

Setup db

Als Nächstes überprüfst du die Berechtigungen des Benutzers Drupal mit der folgenden Abfrage. Du wirst sehen, dass der Benutzer Drupal auf die Datenbank Drupaldb zugreifen kann.

SHOW GRANTS FOR drupal@localhost;

Zum Schluss gibst du quit ein, um den MariaDB-Server zu verlassen.

Privilegien anzeigen

Herunterladen des Drupal-Quellcodes

Nachdem du MariaDB konfiguriert und die Datenbank und den Benutzer angelegt hast, kannst du den Drupal-Quellcode herunterladen und das DocuemtRoot- oder Web-Root-Verzeichnis für die Drupal-Installation konfigurieren. In diesem Fall lädst du den Drupal-Quellcode über wget herunter, anstatt ihn über Composer zu installieren.

Gehe in das Verzeichnis /var/www und lade den aktuellen Drupal-Quellcode mit dem unten stehenden wget-Befehl herunter.

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

Nach dem Download entpackst du den Drupal-Quellcode und benennst das entpackte Verzeichnis in drupal um. Damit wird dein DocumentRoot-Verzeichnis für Drupal unter /var/www/drupal verfügbar sein.

tar -xvf drupal.tar.gz
mv drupal-* drupal

Führe nun den folgenden Befehl aus, um den Eigentümer des Verzeichnisses /var/www/drupal auf den Apache-Benutzer zu ändern und ändere die Berechtigung auf 755.

sudo chown -R apache:apache /var/www/drupal/
sudo chmod -R 755 /var/www/drupal/

Virtuellen Httpd-Host erstellen

In diesem Abschnitt wirst du eine neue Httpd Virtual Host Konfiguration für Drupal erstellen. Stelle also sicher, dass du deinen Domainnamen für Drupal vorbereitet hast, egal ob es sich um einen lokalen oder öffentlichen Domainnamen handelt.

Als erstes erstellst du eine neue httpd virtual host Konfiguration /etc/httpd/conf.d/drupal.conf mit dem folgenden nano-Editor Befehl.

sudo nano /etc/httpd/conf.d/drupal.conf

Füge die unten stehende Konfiguration ein und achte darauf, dass du die Option ServerName durch deinen Domainnamen ersetzt.

<VirtualHost *:80>
ServerName hwdomain.io
ServerAdmin admin@hwdomain.io
DocumentRoot /var/www/drupal

ErrorLog /var/log/httpd/hwdomain.io.error.log
CustomLog /var/log/httpd/hwdomain.io.access.log combined

<Directory /var/www/drupal>
Options FollowSymlinks
#Allow .htaccess
AllowOverride All
Require all granted
<IfModule security2_module>
SecRuleEngine Off
# or disable only problematic rules
</IfModule>
</Directory>

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

</VirtualHost>

Speichere die Datei und beende den Editor, nachdem er fertig ist.

Führe nun den folgenden Befehl aus, um deine httpd-Konfiguration zu überprüfen. Vergewissere dich, dass du die Ausgabe Syntax OK erhältst, die bestätigt, dass du die richtige httpd-Syntax hast.

sudo apachectl configtest

Starten Sie den httpd mit dem unten stehenden Befehl neu, um die Änderungen am virtuellen Host zu übernehmen.

sudo systemctl restart httpd

vhost-Einrichtung

Einrichten von HTTPS über Certbot

In diesem Abschnitt wirst du HTTPS für Drupal über Certbot und Letsencrypt konfigurieren. Wenn du die öffentliche Domain verwendest, kannst du für die lokale Domain ein selbstsigniertes Zertifikat erstellen.

Installiere Certbot und das Certbot Apache Plugin mit dem unten stehenden Befehl. Gib y ein, um die Installation zu bestätigen.

sudo dnf install certbot python3-certbot-apache

Nachdem die Installation abgeschlossen ist, generiere SSL/TLS-Zertifikate für deine Drupal-Installation mit dem unten stehenden Befehl certbot. Achte darauf, dass du den Domainnamen und die E-Mail-Adresse mit deinen Daten abänderst.

sudo certbot --apache --agree-tos --redirect --hsts --staple-ocsp --email alice@hwdomain.io -d hwdomain.io

Sobald der Vorgang abgeschlossen ist, sind deine SSL/TLS-Zertifikate im Verzeichnis/etc/letsencrypt/live/domain.com verfügbar. Außerdem sollte deine Drupal-Installation automatisch mit HTTPS konfiguriert sein.

Drupal installieren

Öffne deinen Webbrowser und rufe die Domain der Drupal-Installation auf, z. B. https://hwdomain.io/.

Wähle deine bevorzugte Sprache und klicke auf die Schaltfläche Speichern und fortfahren.

Standardsprache

Wähle für das Installationsprofil die Option Standard, wenn du Drupal zum ersten Mal installierst, und klicke dann auf Speichern und fortfahren.

Montageprofil

Nachdem die Systemprüfung abgeschlossen ist, siehst du die Datenbankkonfiguration für Drupal. Gib die Informationen zu deiner MariaDB-Datenbank ein, klicke auf Speichern und fahre fort.

Datenbank-Setup

Jetzt sollte die Drupal-Installation beginnen und du siehst folgendes Bild:

drupal installiervorgang

Sobald die Installation abgeschlossen ist, gibst du die Informationen zu deiner Drupal-Site ein und legst einen neuen Admin-Benutzer für Drupal an. Klicke dann auf Speichern und weiter, um zu bestätigen.

Standortkonfiguration

Wenn die Konfiguration abgeschlossen ist, siehst du die Drupal-Homepage wie die folgende:

Installation abgeschlossen

Fazit

Herzlichen Glückwunsch! Du hast nun Drupal auf dem Alma Linux 9 Server installiert. Du hast Drupal mit Httpd, MariaDB und PHP installiert. Außerdem hast du Drupal mit SSL/TLS von Letsencrypt gesichert. Wenn Drupal installiert ist, kannst du neue Themes hinzufügen oder Erweiterungen installieren.

Das könnte dich auch interessieren …