Wie man Joomla mit Nginx auf einem Ubuntu 24.04 Server installiert

Joomla ist ein flexibles und quelloffenes Content-Management-System für die Erstellung von Websites und Online-Publikationen. Es basiert auf PHP und kann für eine Vielzahl von Szenarien eingesetzt werden, z. B. für Foren, Fotogalerien, E-Commerce und andere webbasierte Anwendungen.

In dieser Anleitung zeigen wir dir, wie du Joomla auf einem Ubuntu 24.04 Server installierst. Du wirst Joomla mit Nginx als Webserver, MariaDB als Datenbankserver und PHP-FPM betreiben. Außerdem wirst du Joomla mit HTTPS absichern.

Voraussetzungen

Um diese Anleitung durchzuführen, musst du folgende Voraussetzungen erfüllen:

  • Einen Ubuntu 24.04 Server.
  • Einen Nicht-Root-Benutzer mit Administrator-Rechten.
  • Einen Domainnamen, der auf eine Server-IP-Adresse zeigt.

Installieren der Abhängigkeiten

Joomla ist ein PHP-basiertes Content Management System. Um es zu installieren, musst du PHP auf deinem System installieren. In diesem Abschnitt installierst du den LEMP Stack (Linux, Nginx, MariaDB und PHP-FPM) als Abhängigkeiten für Joomla.

Führe zunächst den folgenden Befehl aus, um den Paketindex deines Ubuntu-Systems zu aktualisieren.

sudo apt update

Repo aktualisieren

Installiere die LEMP Stack-Abhängigkeiten mit dem unten stehenden Befehl. Gib„Y“ ein, um die Installation zu bestätigen.

sudo apt install nginx mariadb-server php-fpm php-curl php-common php-json php-intl php-xml php-gd php-mysql php-imagick php-mbstring php-zip

deps installieren

Nachdem die Installation abgeschlossen ist, überprüfe den Status des Nginx-Dienstes mit folgendem Befehl:

sudo systemctl is-enabled nginx
sudo systemctl status nginx

Du kannst sehen, dass der Nginx-Dienst läuft.

nginx prüfen

Überprüfe nun den MariaDB-Dienst, um sicherzustellen, dass der Dienst läuft und aktiviert ist, indem du den folgenden Befehl eingibst:

sudo systemctl is-enabled mariadb
sudo systemctl status mariadb

mariadb prüfen

Führen Sie schließlich den folgenden Befehl aus, um den PHP-FPM-Dienst zu überprüfen. Der PHP-FPM sollte standardmäßig in der sock-Datei laufen.

sudo systemctl is-enabled php8.3-fpm
sudo systemctl status php8.3-fpm

php-fpm prüfen

PHP-FPM konfigurieren

Nachdem der LEMP Stack installiert ist, konfigurierst du die PHP-FPM-Installation und änderst einige Standardkonfigurationen, die du für Joomla benötigst.

Öffne die PHP-FPM-Konfiguration„/etc/php/8.3/fpm/php.ini“ mit dem Editor„nano„.

sudo nano /etc/php/8.3/fpm/php.ini

Ändere die Standardkonfiguration wie folgt:

memory_limit=512M
upload_max_filesize=64M
post_max_size=64M
max_execution_time=120
output_buffering = Off
extension=intl

Speichere die Datei und beende den Editor.

Starte nun den PHP-FPM-Dienst neu, um deine Änderungen zu übernehmen.

sudo systemctl restart php8.3-fpm

Abschließend kannst du die PHP-Sock-Datei für den PHP-FPM-Dienst mit dem folgenden Befehl überprüfen.

ss -pl | grep php

Wie du unten siehst, befindet sich die Sock-Datei für PHP-FPM im Verzeichnis„/var/run/php/php8.3-fpm.sock„.

php-fpm Sock-Datei

MariaDB-Server konfigurieren

In diesem Abschnitt sicherst du die Installation des MariaDB-Servers und erstellst eine neue Datenbank und einen neuen Benutzer für Joomla. Du verwendest die „mariadb-secure-installation“, um den MariaDB-Server zu sichern, und dann den „mariadb“-Client, um eine neue Datenbank und einen neuen Benutzer anzulegen.

Um den MariaDB-Server zu sichern, führst du den unten stehenden Befehl„mariab-secure-installation“ aus.

sudo mariadb-secure-installation

Nun wirst du aufgefordert, den MariaDB-Server wie folgt einzurichten:

  • Bei der Standardinstallation des MariaDB-Servers ohne Root-Passwort drückst du ENTER, wenn du nach dem Passwort gefragt wirst.
  • Die lokale Authentifizierung für MariaDB-Root-Benutzer ist standardmäßig gesichert. Gib „n“ ein, wenn du die Authentifizierungsmethode auf „unix_socket“ ändern möchtest.
  • Gib „Y“ ein, um ein neues MariaDB Root-Passwort zu erstellen. Gib dann das sichere Passwort für deinen MariaDB-Root-Benutzer ein und wiederhole den Vorgang.
  • Wenn du gefragt wirst, ob du die Fernauthentifizierung für den MariaDB-Root-Benutzer deaktivieren willst, gibst du „Y“ ein, um zuzustimmen.
  • Die Standardinstallation des MariaDB-Servers enthält die Datenbank „test“ und erlaubt einem anonymen Benutzer den Zugriff auf diese Datenbank.
  • Gib für beide Einstellungen „Y“ ein, um die Standarddatenbank „test“ zu entfernen und das anonyme Recht zu löschen.
  • Gib abschließend „Y“ ein, um das erneute Laden der Tabellenrechte zu bestätigen.

Sobald die MariaDB gesichert ist, erstellst du eine neue Datenbank und einen neuen Benutzer für Joomla.

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„joomladb“ und einen neuen Benutzer„joomla“ mit dem Passwort„p4ssword“ zu erstellen.

CREATE DATABASE joomladb;
CREATE USER joomla@localhost IDENTIFIED BY 'p4ssword';
GRANT ALL PRIVILEGES ON joomladb.* TO joomla@localhost;
FLUSH PRIVILEGES;

db-Benutzer anlegen

Als Nächstes führst du die folgende Abfrage aus, um die Berechtigungen des Benutzers„joomla“ zu überprüfen. Du wirst sehen, dass der Benutzer„joomla“ auf die Datenbank„joomladb“ zugreifen kann.

SHOW GRANTS FOR joomla@localhost;

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

Benutzerprivilegien anzeigen

Herunterladen des Joomla-Quellcodes

An dieser Stelle hast du die Abhängigkeiten für Joomla installiert und konfiguriert. Jetzt lädst du den Joomla-Quellcode herunter und richtest das document-root/webroot-Verzeichnis für die Joomla-Installation ein.

Gehe in das Verzeichnis „/var/www“ und lade den Joomla-Quellcode mit dem unten stehenden „wget“-Befehl herunter. Schaue auf der Joomla Download-Seite nach und hole dir den Link für die neueste Version.

cd /var/www/
wget https://downloads.joomla.org/cms/joomla5/5-1-4/Joomla_5-1-4-Stable-Full_Package.zip

Führe nun den Befehl „unzip“ aus, um den Joomla-Quellcode in das Verzeichnis „joomla“ zu entpacken.

unzip Joomla_5-1-4-Stable-Full_Package.zip -d joomla

Zum Schluss führst du den Befehl „chmod“ aus, um die Rechte am Verzeichnis „/var/www/joomla“ auf den Benutzer „www-data“ zu ändern.

sudo chown -R www-data:www-data /var/www/joomla

Nginx-Serverblock einrichten

Jetzt erstellst du eine neue Nginx-Serverblock-Konfiguration für den Betrieb von Joomla. Stelle also sicher, dass du deinen Domainnamen bereit hast und auf die IP-Adresse des Servers verweist.

Erstelle eine neue Nginx-Serverdatei„/etc/nginx/sites-available/joomla“ mit dem folgenden„nano„-Editor.

sudo nano /etc/nginx/sites-available/joomla

Füge die unten stehende Konfiguration ein und ändere die Option„server_name“ mit deinem Domainnamen.

server {
listen 80;
server_name howtoforge.local;
server_name_in_redirect off;
access_log /var/log/nginx/localhost.access_log;
error_log /var/log/nginx/localhost.error_log info;

root /var/www/joomla;
index index.php index.html index.htm default.html default.htm;

# Support API
location /api/ {
try_files $uri $uri/ /api/index.php?$args;
}

# Support Clean (aka Search Engine Friendly) URLs
location / {
try_files $uri $uri/ /index.php?$args;
}

# add global x-content-type-options header
add_header X-Content-Type-Options nosniff;

# deny running scripts inside writable directories
location ~* /(images|cache|media|logs|tmp)/.*\.(php|pl|py|jsp|asp|sh|cgi)$ {
return 403;
error_page 403 /403_error.html;
}

location ~ \.php$ {
fastcgi_pass unix:/var/run/php/php8.3-fpm.sock;
fastcgi_index index.php;
include fastcgi_params;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include /etc/nginx/fastcgi.conf;
}

# caching of files
location ~* \.(ico|pdf|flv)$ {
expires 1y;
}

location ~* \.(js|css|png|jpg|jpeg|gif|swf|xml|txt)$ {
expires 14d;
}

}

Speichere die Datei und beende den Editor.

Führe nun den folgenden Befehl aus, um den„joomla„-Serverblock zu aktivieren und deine Nginx-Konfiguration zu überprüfen. Wenn du die Nginx-Einstellungen richtig vorgenommen hast, bekommst du die Meldung„Syntax ist OK„.

sudo ln -s /etc/nginx/sites-available/joomla /etc/nginx/sites-enabled/
sudo nginx -t

Zum Schluss führst du den Befehl „systemctl“ aus, um den Nginx-Dienst neu zu starten und deine Änderungen zu übernehmen.

sudo systemctl restart nginx

setupnginx

Joomla mit HTTPS absichern

In dieser Anleitung wirst du Joomla mit HTTPS absichern. Wenn du die öffentliche Domain verwendest, kannst du Joomla mit SSL/TLS-Zertifikaten über Certbot und Letsencerypt sichern.

Installiere „Certbot“ und das Certbot Nginx Plugin mit dem unten stehenden „apt“-Befehl. Gib „Y“ ein, um die Installation zu bestätigen.

sudo apt install certbot python3-certbot-nginx

Nachdem die Installation abgeschlossen ist, führe den folgenden „Certbot“-Befehl aus, um SSL/TLS-Zertifikate zu erzeugen und deine Joomla-Installation mit HTTPS zu sichern. Achte darauf, dass du den Domänennamen und die E-Mail-Adresse mit deinen Daten änderst.

sudo certbot --nginx --agree-tos --redirect --hsts --staple-ocsp --email kyrie@howtoforge.local -d howtoforge.local

Wenn du fertig bist, ist deine Joomla-Installation durch SSL/TLS-Zertifikate von Letsencrypt mit HTTPS gesichert.

Joomla installieren

Öffne deinen Webbrowser und rufe deinen Joomla-Domainnamen auf, z.B. https://howtoforge.local/. Es wird der Joomla-Installationsassistent angezeigt.

Wähle deine Standardsprache und gib den Namen deiner Website ein.

Setup-Sprache

Gib den neuen Admin-Benutzer, die E-Mail-Adresse und das Passwort für Joomla ein.

neuer Admin-Benutzer

Gib die Details deiner MariaDB-Datenbank und des Benutzers ein und klicke dann auf„Joomla installieren„, um mit der Installation fortzufahren.

db details

Nach Abschluss der Installation klickst du auf„Seite öffnen„, um die Standard-Homepage zu öffnen, oder auf„Administrator öffnen„, um auf das Joomla-Administrations-Dashboard zuzugreifen.

Installation abgeschlossen

Auf der Standard-Joomla-Homepage siehst du das folgende Bild.

Homepage

Gib nun deinen Admin-Benutzer und dein Passwort ein und klicke auf„Anmelden„.

Anmeldung

Wenn du den richtigen Benutzer und das richtige Passwort hast, siehst du das folgende Joomla-Administrations-Dashboard.

Dashboard

Fazit

Herzlichen Glückwunsch! Du hast Joomla auf dem Ubuntu 24.04 Server installiert. Du hast Joomla mit dem Nginx-Webserver, dem MariaDB-Datenbankserver und PHP-FPM zum Laufen gebracht. Außerdem hast du Joomla mit HTTPS über Certbot und Letsencrypt abgesichert.

Das könnte dich auch interessieren …