In diesem Artikel installieren wir Joomla auf einem Linux basierten Server. Neben WordPress zählt Joomla zu den beliebtesten Content-Management-Systemen (CMS). Einer der größten Vorteile von Joomla ist der, dass die Software quelloffen ist und kostenlos auf deinen Server installiert werden kann.
Nach der Installation von Joomla steht uns ein benutzerfreundliches und responsives CMS zur Verfügung, welches sich sehr gut für die Erstellung von Webseiten und Blogs jeglicher Art eignet. Die Software wurde in PHP geschrieben und verwendet eine MySQL-Datenbank als Datenbank-Backend.
Mithilfe von sogenannten Joomla-Templates und Plugins können wir auch ohne viel Erfahrungen in den Programmier- und Modelliersprachen HTML/CSS/JavaScript, komplexe und anpassungsfähige Internetauftritte erstellen.
Wir haben die Möglichkeit, zwischen Tausenden von verschiedenen Designs und Funktionen, maßgeschneiderte Lösungen für Unternehmens- und Privatwebseiten innerhalb von wenigen Stunden umzusetzen. Ähnlich wie es auch bei der Installation anderer Content-Management-Systemen der Fall ist, müssen wir zu Beginn einen sogenannten LAMP-Stack-Server implementieren, auf den wir dann die aktuellste Version von Joomla installieren.
Inhaltsverzeichnis: Joomla mit Apache, MariaDB und PHP auf einen Linux-Server installieren (Tutorial)
Features und Funktionen von Joomla 4
Zum Zeitpunkt der Erstellung von diesem Tutorial ist Joomla 4 erhältlich. Bevor wir mit der Joomla Installation beginnen, möchte ich euch die wichtigsten Features und Funktionen von Joomla vorstellen.
Einige Features und Funktionen von Joomla 4:
- Webseiten, Artikel und Content-Verwaltung über ein CMS-Backend
- Benutzerverwaltung (Wer darf Inhalte erstellen und publizieren?)
- Tausende von Plugins und Erweiterungen (kostenlos/kostenpflichtig)
- Integration eines Webshops mit Joomshopping, virtuemart und viele weitere Shop-Plugins
- Joomla bietet viele Vorlagen und Templates, die für viele verschiedene Inhalte verwendet werden können
- Unterstützung von mehreren Sprachen
- Responsive Designs für Computer, Tablets und Smartphones
- Cloud-Speicher-API
- SEO-Konfigurationen erlauben eine einfache Suchmaschinenoptimierung
- Bannerverwaltung für die Integration von Werbebannern
- Widgets erlauben die einfache Implementierung zusätzlicher Inhalte
Voraussetzungen und Vorbereitungen für die Installation von Joomla CMS
Damit wir die Open-Source-Software Joomla nach meinem Tutorial installieren können, müssen die folgenden Voraussetzungen erfüllt sein:
- Einen Linux-Server mit einer Verbindung zum Internet
- Eine Domain, die auf die IP-Adresse deines Hostsystems verweist
- Portfreigaben für den Zugriff von außen über das Internet müssen im Router eingepflegt werden (80/443)
- Zugang zum Server als Administrator (Root)
Hinweis: Wird Joomla auf einem Debian-Server installiert, können die Befehle direkt übernommen werden. Für die Installation auf einen Ubuntu-Server müssen einige Befehle als Superuser mit dem Sudo-Prompt ausgeführt werden. Alternativ ist es auch möglich, sich für den Installationsprozess als Root-Benutzer am System zu authentifizieren.
Das ist mit dem folgenden Befehl möglich:
Nur für Linux Ubuntu 22.04 oder eine ältere Distribution:
sudo su root
Joomla installieren: Installation der Abhängigkeiten (Apache, MariaDB und PHP)
Bevor wir Joomla installieren und eine Internetseite erstellen können, benötigen wir einige Abhängigkeiten, die für den Betrieb von Joomla CMS zwingend erforderlich sind. In diesem Abschnitt installieren wir einen Apache-Webserver, eine MariaDB und einen PHP-Server mit allen notwendigen Erweiterungen (PHP-Module).
Führe den folgenden Befehl aus, um Apache und die Datenbank (MariaDB) für Joomla zu installieren:
apt-get install apache2 mariadb-server -y
Sobald die Installation von Apache und MariaDB erfolgreich abgeschlossen wurde, installiere mit den folgenden Befehlen die notwendigen PHP-Module und weitere Abhängigkeiten für die Installation von Joomla-CMS:
apt-get install php libapache2-mod-php php-cli php-mysql php-json php-opcache php-mbstring php-intl php-xml php-gd php-zip php-curl php-xmlrpc wget curl unzip -y
Nach der Installation von PHP kannst du die aktuell installierte Versionsnummer mit dem folgenden Befehl überprüfen:
php -v
Anschließend empfiehlt es sich, einige Standardeinstellungen in der PHP-Konfigurationsdatei vorzunehmen. Dafür nutzen wir den Nano-Editor und editieren die besagte „php.ini“ Datei mit dem folgenden Befehl:
nano /etc/php/7.4/cli/php.ini
Suche die folgenden Zeilen und ändere die einzelnen Werte wie im Beispiel angegeben:
memory_limit = 256M
upload_max_filesize = 128M
post_max_size = 128M
max_execution_time = 300
output_buffering = Off
date.timezone = CET
Speicher die Änderungen ab (STRG + S) und verlasse den Nano-Editor wieder (STRG + X).
Starte nun die Dienste deines Apache-Webservers und der MariaDB. Dafür kannst du die folgenden Befehle verwenden:
systemctl start apache2
systemctl start mariadb
Damit die Dienste bei einem Systemneustart wieder selbstständig gestartet werden, führe noch den folgenden Befehl aus:
systemctl enable apache2 mariadb
Eine Datenbank für das Joomla Content-Management-System mit MariaDB erstellen
Jetzt folgt die Erstellung einer Datenbank für das Joomla CMS. Dafür führen wir zunächst das vorkonfigurierte Installationsskript aus:
mysql_secure_installation
Setze ein sicheres Root-Passwort, entferne den Anonymous-Benutzer und verbiete die Remote-Login-Funktion. Entferne auch die bereits angelegte Test-Datenbank und die vorhandenen Tabellen.
Melde dich anschließend an der MariaDB-Shell mit dem folgenden Befehl an (Root-Passwort erforderlich):
mysql -u root -p
Erstelle eine Datenbank für Joomla:
create database joomladb;
Erstelle einen Datenbank-Benutzer für das Joomla CMS:
create user joomla@localhost identified by 'einsicherespasswort';
Hinweis: Wähle ein sicheres Passwort für den Datenbank-Benutzer und notiere dir die Zugangsdaten deines angelegten DB-Users. Diese werden bei der Ausführung des Joomla-Installers in der Weboberfläche benötigt.
Berechtigungen für die Datenbank erteilen:
grant all on joomladb.* to 'joomla@localhost';
Änderungen wirksam machen:
FLUSH PRIVILEGES;
Datenbank-Shell verlassen:
EXIT;
Sobald die Datenbank erfolgreich angelegt wurde, fahre im nächsten Schritt dieser Installationsanleitung fort.
Joomla Installation: Die aktuelle Version von Joomla auf deinen Server herunterladen
Wir laden Joomla für unsere Installation von der offiziellen Webseite herunter. Zum Zeitpunkt der Erstellung meines Tutorials ist, die zuletzt veröffentliche Version Joomla 4.1.5. Überprüfe auf der Internetseite im Download-Bereich vom offiziellen Anbieter, ob bereits ein neueres Release zum Download verfügbar ist:
Offizielle Webseite mit den Releases: https://downloads.joomla.org/cms/joomla4/
Ergänze den Downloadlink, falls eine neuere Version in der Zwischenzeit veröffentlicht worden ist. Ansonsten kann dieser genauso übernommen werden:
wget https://downloads.joomla.org/cms/joomla4/4-1-5/Joomla_4-1-5-Stable-Full_Package.zip?format=zip -O joomla.zip
Wurde Joomla erfolgreich heruntergeladen, entpacken wir das ZIP-Archiv und verschieben den Inhalt in das Verzeichnis für die Webseitenausgabe unseres Webservers:
unzip joomla.zip -d /var/www/html/joomla
Damit unser Webserver die Joomla-Webseite ausgeben darf, müssen wir noch Berechtigungen regeln und den Besitzer des Verzeichnisses bestimmen. Das gelingt uns mit den folgenden zwei Befehlen:
chown -R www-data:www-data /var/www/html/joomla
chmod -R 755 /var/www/html/joomla
Apache für das Joomla CMS konfigurieren
In diesem Abschnitt erstellen wir eine Virtualhost-Datei für den Apache-Webserver. Damit wird Apache mitgeteilt, welche Webseite der Server ausgeben soll, welcher Port verwendet wird und unter welchen Domain-Namen unsere zukünftige Joomla-Webseite erreichbar ist.
Die Datei wird mithilfe des Nano-Editors erstellt und wie folgt konfiguriert:
nano /etc/apache2/sites-available/joomla.conf
Kopiere den Inhalt und füge ihn in die Datei ein:
<VirtualHost *:80>
ServerAdmin admin@domainname.de
DocumentRoot /var/www/html/joomla/
ServerName joomla.domainname.de
ErrorLog ${APACHE_LOG_DIR}/joomla-error.log
CustomLog ${APACHE_LOG_DIR}/joomla-access.log combined
<Directory /var/www/html/joomla/>
Options FollowSymlinks
AllowOverride All
Require all granted
</Directory>
</VirtualHost>
Speichere die Änderungen ab (STRG + S) und verlasse den Nano-Editor wieder (STRG + X).
Aktiviere die Konfiguration mit dem folgenden Befehl:
a2ensite joomla.conf
Starte den Apache-Service jetzt neu, damit die Änderungen wirksam werden und die soeben erstellte Virtualhost-Datei vom Server übernommen wird:
systemctl restart apache2
Überprüfe zum Abschluss der Apache-Konfiguration, ob der Webserver seinen Dienst wieder aufgenommen hat:
systemctl status apache2
Firewall Konfiguration (Optional)
Dieser Schritt ist optional und hängt auch damit zusammen, welche Linux-Distribution auf dem Server verwendet wird. Es erklärt sich von selbst, dass die Ports 80 und 443 für den Zugriff auf die mit Joomla angelegten Webseiten und Webanwendungen freigegeben werden müssen.
Die Ports in der Ubuntu Firewall (UFW) freigeben:
ufw allow 80/tcp
ufw allow 443/tcp
Die Ports unter Debian mit iptables freigeben:
iptables -I INPUT 1 -i eth0 -p tcp --dport 80 -j ACCEPT
iptables -I INPUT 1 -i eth0 -p tcp --dport 443 -j ACCEPT
Bei der Verwendung von FirewallD:
firewall-cmd --prmanent --add-port=80/tcp
firewall-cmd --prmanent --add-port=443/tcp
Die Joomla-Weboberfläche über den Browser aufrufen und den Setup-Assistenten (Webinstaller) durchführen
Die Installation von Joomla auf deinem Linux-Server ist jetzt abgeschlossen. Nun sollte der Installationsassistent über die Weboberfläche erreichbar sein. Dafür kannst du über die zugewiesene Domain oder über die IP-Adresse deines Joomla-Servers zugreifen.
Bei dem ersten Aufruf über einen Webbrowser deiner Wahl begrüßt uns der Joomla Installer. Selektiere eine gewünschte Sprache und wähle einen Namen für deinen Webauftritt:
Klicke anschließend auf die Schaltfläche „Setup Login Data“ und beginne mit der Einrichtung eines verwaltenden Adminkontos. Notiere dir deine Eingaben, dies wird dein Login für das CMS-Backend sein. Gebe eine gültige E-Mail-Adresse ein und klicke auf die Schaltfläche „Setup Database Connection“.
Im Abschnitt Database Configuration wird die Schnittstelle zur MariaDB eingerichtet. Teile dem Installationsassistenten deine Datenbank-Zugangsdaten mit und betätige die Schaltfläche „Install Joomla“.
Das Joomla Content-Management-System wird jetzt eingerichtet. Je nach Auslastung deines Servers kann dieser Vorgang einige Minuten Zeit in Anspruch nehmen. Nach der Installation ist die Webseite bereit für den ersten Zugriff.
Melde dich mit deinem soeben erstellen Joomla-Zugangsdaten am CMS an. Anschließend erhältst du Zugriff, auf das Home-Dashboard, auch als Joomla-Backend bekannt. An diesem Punkt ist die Installation und Konfiguration komplett abgeschlossen. Installiere ein Joomla-Template für deine Webseite und mache dich mit den möglichen Erweiterungen und Plugins vertraut. Die Möglichkeiten sind nahezu unerschöpflich.
So können kleine Firmenwebseiten bis hin zu großen und dynamischen Webprojekte auf deinem installierten Webserver mit dem Joomla CMS realisiert werden. Kombiniere verschiedene Erweiterungen, um deinen Besuchern eine möglichst gute Webpräsenz mit einer durchdachten User-Experience zu bieten. Auch die Erstellung von E-Commerce Webshops wird mit den unzähligen Plugins und Modulen, die zum Teil kostenlos verwendet werden können, ein Kinderspiel.
Joomla-CMS Installation wurde erfolgreich abgeschlossen: Installiere ein kostenloses Let’s Encrypt Zertifikat
Damit der Server über HTTPS verschlüsselt wird, ist es zu empfehlen, ein SSL-Zertifikat zu installieren. Das können wir Dank Let’s Encrypt und der Verwendung von Certbot ohne den Einsatz von Kosten erledigen.
Installiere die Software Certbot mit dem folgenden Befehl:
apt-get install python3-certbot-apache -y
Installiere ein Let’s Encrypt SSL-Zertifikat für Apache:
certbot --apache -d deine-joomla-domain.de
Während der Installation erhalten wir die Aufforderung, eine E-Mail-Adresse einzugeben und die Nutzungsbedingungen zu akzeptieren. Bestätige diese Eingaben und selektiere die Zahl Zwei (2) bei der Frage, ob der gesamte Datenverkehr auf HTTPS umgeleitet werden soll.
Anschließend wird das Zertifikat installiert und die Webseite ist folglich nur noch verschlüsselt über HTTPS erreichbar. Falls du mehrere Webserver im selben Netzwerk verwendest, einen Lastenausgleich implementieren möchtest oder die Sicherheit deines Webservers erhöhen möchtest, kann ich dir die Installation eines Reverse-Proxy-Servers für deine Joomla-Internetseite ans Herz legen.
Wie das funktioniert, erfährst du hier: Installation und Konfiguration eines Reverse-Proxy mit Lastenausgleich