Wie installiere ich TYPO3 CMS auf Debian 12

TYPO3 ist ein kostenloses und quelloffenes Content Management System für Unternehmen. Es bietet Funktionen auf Enterprise-Niveau wie ein skalierbares CMS mit Multisite-Unterstützung, mehrsprachige Installationen, starke Sicherheitsimplementierungen, ist rasend schnell und kann überall eingesetzt werden.

Mit TYPO3 CMS kannst du flexible und zuverlässige Websites erstellen. Hinter dem TYPO3 CMS steht eine lebendige professionelle Community. Das TYPO3 CMS ist ein pluggable Content Management System mit einer anpassungsfähigen und entkoppelten Architektur.

Dieses Tutorial zeigt dir, wie du das TYPO3 CMS auf einem Debian 12 Server mit einem LAMP Stack (Apache2, MariaDB und PHP) installierst.

Voraussetzungen

Bevor du mit dieser Anleitung fortfährst, solltest du sicherstellen, dass du Folgendes hast

  • Einen Debian 12 Server.
  • Einen Nicht-Root-Benutzer mit sudo-Administrator-Rechten.
  • Einen Domainnamen, der auf die IP-Adresse deines Servers zeigt.

Installieren der Abhängigkeiten

TYPO3 ist ein Open-Source Content Management System, das in PHP geschrieben wurde und den MySQL/MariaDB-Datenbankserver unterstützt. Das TYPO3 CMS kann über den Composer PHP Dependency Manager installiert werden und kann mit Apache2 oder Nginx Webserver betrieben werden.

In dieser Anleitung wirst du TYPO3 CMS mit dem LAMP Stack (Apache2, MariaDB und PHP) und Composer betreiben, der einfach über APT aus dem offiziellen Debian Repository installiert werden kann. Führe die folgenden Schritte aus, um diese Abhängigkeiten für TYPO3 CMS zu installieren.

Aktualisiere zunächst dein Debian-Repository mit dem unten stehenden Befehl.

sudo apt update

repoi aktualisieren

Installiere nun die Paketabhängigkeiten für TYPO3 CMS mit dem Befehl apt install (siehe unten). Mit diesem Befehl installierst du den LAMP-Stack (Apache2, MariaDB, PHP) mit zusätzlichen PHP-Erweiterungen und den Composer als PHP-Abhängigkeitsmanager.

sudo apt install apache2 mariadb-server composer php php-common php-mysql libapache2-mod-php php-gd php-curl php-json php-xmlrpc php-intl php-bcmath php-zip php-apcu php-mbstring php-fileinfo php-xml php-soap

Bestätige mit yo und fahre mit der Installation fort.

deps installieren

Nachdem die Abhängigkeiten installiert sind, musst du jede Abhängigkeit überprüfen, um sicherzustellen, dass die Installation erfolgreich war.

Führe den folgenden Befehl aus, um sicherzustellen, dass der apache2-Dienst läuft und aktiviert ist.

sudo systemctl is-enabled apache2
sudo systemctl status apache2

Die folgende Ausgabe zeigt an, dass der apache2-Dienst läuft und aktiviert ist.

apache2 prüfen

Überprüfe nun den mariadb-Dienst mit dem folgenden Befehl.

sudo systemctl is-enabled mariadb
sudo systemctl status mariadb

Ähnlich wie beim apache2-Dienst bestätigt die Ausgabe enabled, dass der mariadb-Dienst aktiviert ist. Und die Ausgabe active (running) bestätigt, dass mariadb läuft.

mariadb prüfen

Als Nächstes überprüfst du mit dem folgenden Befehl deine PHP-Version und die Erweiterungen.

php -v
php -m

Du solltest sehen, dass PHP 8.2 installiert ist und einige Erweiterungen aktiviert sind, z. B. apcu, curl, fileinfo und gd.

php prüfen

Zuletzt führst du den folgenden Befehl aus, um sicherzustellen, dass der COmposer installiert ist. Überprüfe dann die Composer-Version.

which composer
sudo -u www-data composer -v

Die folgende Ausgabe zeigt dir, dass Composer 2.5 unter /usr/bin/composer installiert ist.

Komponist prüfen

PHP konfigurieren

Nachdem du den LAMP-Stack und den Composer installiert hast, musst du deine PHP-Installation konfigurieren. Das TYPO3 CMS benötigt einige spezielle PHP-Einstellungen, um zu funktionieren. Daher wirst du die php.ini-Konfiguration so anpassen, wie es für die TYPO3 CMS-Installation erforderlich ist.

Öffne die Standard-PHP-Konfiguration /etc/php/8.2/apache2/php.ini mit dem folgenden Befehl des nano-Editors.

sudo nano /etc/php/8.2/apache2/php.ini

Ändere die Standard-PHP-Konfiguration wie folgt und achte darauf, dass du die Optionen memory_limit und date.timezone an deine Serverumgebung anpasst.

memory_limit = 512M
max_execution_time = 240
max_input_vars = 1500

date.timezone = Europe/Amsterdam

post_max_filesize = 50M
upload_max_filesize = 50M

Speichere und beende die Datei, wenn du fertig bist.

Führe nun den folgenden systemctl-Befehl aus, um den apache2-Dienst neu zu starten und die Änderungen für deine PHP-Installation zu übernehmen.

sudo systemctl restart apache2

Anschließend erstellst du eine neue PHPINFO-Datei /var/www/html/info.php, indem du den folgenden Befehl ausführst. So stellst du sicher, dass deine PHP-Installation funktioniert.

echo "<?php phpinfo(); ?>" > /var/www/html/info.php

Öffne schließlich deinen Webbrowser und rufe die IP-Adresse des Servers auf, gefolgt von dem Pfad der PHPINFO-Datei, z. B. http://192.168.10.15/info.php. Wenn alles gut läuft, solltest du detaillierte Informationen über deine PHP-Installation sehen.

phpinfo

MariaDB Server konfigurieren

Im folgenden Abschnitt wirst du den MariaDB-Server mit dem Dienstprogramm mariadb-secure-installation sichern und eine neue Datenbank und einen neuen Benutzer anlegen, die von TYPO3 CMS über den mariadb-Client verwendet werden.

Führe den folgenden Befehl mariadb-secure-installation aus, um deine MariaDB-Server-Installation zu sichern.

sudo mariadb-secure-installation

Während des Vorgangs wirst du aufgefordert, einige der Standard-MariaDB-Konfigurationen zu ändern. Gib Y ein, um die Änderungen zu übernehmen, oder n für No, um sie abzulehnen.

Im Folgenden findest du einige der MariaDB-Serverkonfigurationen, nach denen du gefragt wirst:

  • Zu unix_socket-Authentifizierung wechseln? 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 ja eingibst.
  • Das Root-Passwort ändern? 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 nicht zulassen? Gib zur Bestätigung y ein. Wenn du den MariaDB Root-Benutzer verwendest, wird nur eine lokale Verbindung zugelassen.
  • Testdatenbank und Zugriff auf sie entfernen? Bestätige mit y und entferne die Standarddatenbank „test“.
  • Gib abschließend erneut y ein, um alle Tabellenberechtigungen auf deinem MariaDB-Server neu zu laden und die neuen Änderungen anzuwenden.

Nachdem du den MariaDB-Server gesichert hast, erstellst du eine neue Datenbank und einen neuen Benutzer, die von TYPO3 CMS verwendet werden. Um diese zu erstellen, musst du dich über den Befehl mariadb client am MariaDB-Server anmelden.

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

sudo mariadb -u root -p

Sobald du eingeloggt bist, führe die folgenden Abfragen aus, um eine neue Datenbank typo3db und den Benutzer typo3 zu erstellen. Achte darauf, dass du das Passwort in den folgenden Abfragen änderst.

CREATE DATABASE typo3db;
GRANT ALL PRIVILEGES ON typo3db.* to typo3@localhost IDENTIFIED BY 'typo3password';
FLUSH PRIVILEGES;

Datenbank erstellen

Als Nächstes führst du die folgende Abfrage aus, um sicherzustellen, dass der Benutzer typo3 auf die Datenbank typo3db zugreifen kann.

SHOW GRANTS FOR typo3@localhost;

Die folgende Ausgabe bestätigt, dass der MariaDB-Benutzer typo3 auf die Datenbank typo3db zugreifen kann.

Datenbankbenutzer verifizieren

Gib quit ein, um den MariaDB-Server zu verlassen.

Herunterladen von TYPO3 CMS über den Composer

In dieser Anleitung installierst du TYPO3 CMS Version 12, das du über den Composer herunterladen kannst. In den folgenden Schritten richtest du das Web-Root-Verzeichnis ein und lädst den TYPO3 CMS-Quellcode herunter. Außerdem konfigurierst du die richtigen Rechte und Eigentümer für das TYPO3 CMS-Web-Root-Verzeichnis.

Erstelle ein neues Web-Root-Verzeichnis /var/www/typo3 und zusätzliche Verzeichnisse /var/www/{.cache,.config} mit dem folgenden Befehl. Das Verzeichnis /var/www/typo3 wird als Web-Root-Verzeichnis für deine TYPO3 CMS-Installation verwendet.

mkdir -p /var/www/{.cache,.config,typo3}

Führe nun den folgenden Befehl aus, um den Eigentümer des Verzeichnisses /var/www/typo3 auf den Benutzer www-data zu ändern. Gib dem Besitzer des Verzeichnisses /var/www/typo3 Lese- und Schreibrechte.

sudo chown -R www-data:www-data /var/www/{.cache,.config,typo3}
sudo chmod u+rw /var/www/typo3

Als Nächstes gehst du in das Verzeichnis /var/www/typo3 und lädst den TYPO3 CMS-Quellcode mit dem unten stehenden composer-Befehl herunter. In diesem Beispiel lädst du das TYPO3 CMS 12 herunter.

cd /var/www/typo3
sudo -u www-data composer create-project typo3/cms-base-distribution:^12 .

Die folgende Ausgabe wird während des Prozesses angezeigt:

typo3 cms installieren

Wenn du fertig bist, solltest du die folgende Ausgabe erhalten:

Installation beendet

Nachdem der TYPO3 CMS-Quellcode heruntergeladen wurde, führe den unten stehenden ls-Befehl aus, um den Quellcode aufzulisten.

ls

Die Liste des TYPO3 CMS-Quellcodes sollte wie folgt aussehen:

list files source code

Einrichten des virtuellen Apache2-Hosts

Im folgenden Abschnitt wirst du eine neue Apache2 Virtual Host-Konfiguration erstellen, auf der das TYPO3 CMS laufen wird. Bevor du fortfährst, solltest du sicherstellen, dass du einen Domainnamen hast, der auf die IP-Adresse deines Servers zeigt.

Gib zunächst den folgenden Befehl ein, um die Module Rewrite und Header zu aktivieren.

sudo a2enmod rewrite headers

Erstelle nun eine neue virtuelle Hostkonfiguration /etc/apache2/sites-available/typo3.conf mit dem folgenden nano-Editor-Befehl.

sudo nano /etc/apache2/sites-available/typo3.conf

Füge die folgende Konfiguration ein und achte darauf, dass du den Domainnamen deiner TYPO3 CMS-Installation änderst.

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

<Directory /var/www/typo3/public/>
Options FollowSymlinks
AllowOverride All
Require all granted
</Directory>

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

<Directory /var/www/typo3/public/>
RewriteEngine on
RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(.*) index.php [PT,L]
</Directory>
</VirtualHost>

Speichere die Datei und beende den Editor, wenn du fertig bist.

Als Nächstes führst du den folgenden Befehl aus, um die neue virtuelle Hostdatei typo3.conf zu aktivieren und deine Apache2-Syntax zu überprüfen.

sudo a2ensite typo3.conf
sudo apachectl configtest

Wenn du die richtige Apache2-Syntax hast, solltest du die Meldung Syntax OK erhalten.

apache2 konfigurieren

Zum Schluss gibst du den folgenden Befehl ein, um den Apache2-Dienst neu zu starten und die vorgenommenen Änderungen zu übernehmen.

sudo systemctl restart apache2

TYPO3 CMS mit Certbot absichern

Nachdem du den virtuellen Host konfiguriert hast, sicherst du deine TYPO3 CMS-Installation, indem du sicheres HTTPS mit SSL/TLS-Zertifikaten von Letsencrypt aktivierst. Du wirst Certbot und das Certbot Apache Plugin verwenden, um Letsencrypt-Zertifikate zu erzeugen.

Installiere Certbot und das Certbot Apache Plugin mit dem folgenden apt-Befehl.

sudo apt install certbot python3-certbot-apache

Gib y ein, um mit der Installation fortzufahren.

certbot installieren

Sobald die Installation abgeschlossen ist, führe den folgenden Certbot-Befehl aus, um neue SSL/TLS-Zertifikate für deine TYPO3 CMS-Installation zu erzeugen. Achte darauf, dass du den Domainnamen und die E-Mail-Adresse mit deinen Daten änderst.

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

Deine SSL/TLS-Zertifikate werden im Verzeichnis /etc/letsencrypt/live/domain.com verfügbar sein. Und die virtuelle Hostdatei typo3.conf wird automatisch mit HTTPS konfiguriert, was über das Certbot Apache Plugin geschieht.

Installation von TYPO3 CMS über den Web Installer

Führe zunächst den folgenden Befehl aus, um eine neue Datei /var/www//typo3/public/FIRST_INSTALL zu erstellen. Der TYPO3 Web-Installer ist nur verfügbar, wenn die Datei /var/www/typo3/public/FIRST_INSTALL vorhanden ist.

sudo -u www-data touch /var/www//typo3/public/FIRST_INSTALL

Öffne nun deinen Webbrowser und rufe deine TYPO3 CMS-Domain auf, z.B. https://hwdomain.io/. Du wirst zum TYPO3 Webinstaller weitergeleitet.

Vergewissere dich, dass deine Systemumgebung bereit ist. Klicke dann auf Keine Probleme erkannt und fahre mit der Installation fort.

Typo3 installieren

Gib den Benutzer, das Passwort und den Host der MariaDB-Datenbank ein und klicke dann auf Weiter.

db-Einstellungen

Aktiviere die Option Vorhandene leere Datenbank verwenden und wähle die Datenbank typo3db. Klicke dann erneut auf Fortfahren.

Datenbank auswählen

Als nächstes gibst du den neuen Admin-Benutzer, das Passwort und die E-Mail-Adresse für deine TYPO3 CMS-Installation ein. Klicke zum Bestätigen auf Weiter.

Admin-Benutzer anlegen

Sobald die Installation abgeschlossen ist, solltest du die folgende Seite erhalten.

Installation beendet

Klicke auf TYPO3 Backend öffnen, um auf das TYPO3 Administrations-Dashboard zuzugreifen.

Du solltest die TYPO3 Anmeldeseite erhalten. Gib deinen Benutzernamen und dein Passwort ein und klicke dann auf Login.

Anmeldung Tippfehler3

Wenn die Anmeldung erfolgreich war, solltest du das TYPO3-Administrations-Dashboard wie folgt sehen:

Backend-Administrations-Dashboard

Klicke oben rechts im Menü auf Informationen und du solltest detaillierte Informationen über deine TYPO3 CMS-Installation erhalten. Auf dem folgenden Screenshot siehst du, dass TYPO3 CMS 12 mit PHP 8.2, dem MariaDB-Server 10.11 und dem Apache2-Webserver 2.4 installiert ist.

Systeminfo

Fazit

Abschließend lässt sich sagen, dass du TYPO3 CMS erfolgreich auf dem Debian 12 Server mit dem LAMP Stack (Apache2, MariaDB und PHP) und dem Composer PHP Paketmanager installiert hast. Außerdem hast du deine TYPO3 CMS-Installation mit SSL/TLS-Zertifikaten gesichert, die du mit Certbot und dem Certbot Apache Plugin von Letsencrypt generiert hast. Jetzt kannst du TYPO3 CMS nutzen, um deine Inhalte zu verwalten, Datensätze zu verwalten, zusätzliche Sprachen für mehrsprachige Websites einzurichten und vieles mehr.

Das könnte dich auch interessieren …