Joomla ist ein beliebtes Open-Source-CMS für Websites und Portale. Diese Anleitung zeigt die Installation auf einem Linux-Server mit Apache, MySQL und PHP.

Voraussetzungen

Systemanforderungen

- PHP 8.1 oder höher
- MySQL 8.0+ oder MariaDB 10.4+
- Apache 2.4+ oder Nginx
- Mindestens 256 MB RAM
- 500 MB Speicherplatz

PHP-Extensions

Erforderlich:
- json
- simplexml
- dom
- zlib
- gd oder imagick
- mysqlnd

Empfohlen:
- mbstring
- intl
- opcache

LAMP-Stack installieren

Apache installieren

apt update
apt install apache2
systemctl enable --now apache2

MySQL/MariaDB installieren

apt install mariadb-server mariadb-client
systemctl enable --now mariadb

# Sicherheit konfigurieren
mysql_secure_installation

PHP installieren

apt install php php-mysql php-gd php-xml php-mbstring php-intl php-zip php-curl

PHP-Version prüfen

php -v

Apache-Module aktivieren

a2enmod rewrite
systemctl restart apache2

Datenbank erstellen

mysql -u root -p
CREATE DATABASE joomla CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
CREATE USER 'joomla'@'localhost' IDENTIFIED BY 'SicheresPasswort123!';
GRANT ALL PRIVILEGES ON joomla.* TO 'joomla'@'localhost';
FLUSH PRIVILEGES;
EXIT;

Joomla herunterladen

Download und Entpacken

cd /tmp
wget https://downloads.joomla.org/cms/joomla5/5-0-0/Joomla_5-0-0-Stable-Full_Package.zip

# Verzeichnis erstellen und entpacken
mkdir -p /var/www/joomla
unzip Joomla_5-0-0-Stable-Full_Package.zip -d /var/www/joomla

Berechtigungen setzen

chown -R www-data:www-data /var/www/joomla
find /var/www/joomla -type d -exec chmod 755 {} \;
find /var/www/joomla -type f -exec chmod 644 {} \;

Apache Virtual Host

Konfiguration erstellen

nano /etc/apache2/sites-available/joomla.conf
<VirtualHost *:80>
    ServerName example.com
    ServerAlias www.example.com
    DocumentRoot /var/www/joomla

    <Directory /var/www/joomla>
        Options FollowSymLinks
        AllowOverride All
        Require all granted
    </Directory>

    ErrorLog ${APACHE_LOG_DIR}/joomla-error.log
    CustomLog ${APACHE_LOG_DIR}/joomla-access.log combined
</VirtualHost>

Site aktivieren

a2ensite joomla.conf
a2dissite 000-default.conf
systemctl reload apache2

Web-Installation

Installation starten

1. Browser öffnen: http://ihre-domain.de 2. Sprache auswählen: Deutsch 3. Weiter klicken

Konfiguration

Site-Einstellungen:

  • Site-Name: Ihre Website
  • Admin-E-Mail: admin@example.com
  • Admin-Benutzername: admin
  • Admin-Passwort: (sicheres Passwort)

Datenbank-Einstellungen:

  • Datenbanktyp: MySQL (PDO)
  • Server: localhost
  • Benutzername: joomla
  • Passwort: (aus vorherigem Schritt)
  • Datenbank: joomla
  • Tabellenpräfix: (lassen oder ändern)

Installation abschließen

1. Zusammenfassung prüfen 2. Installieren klicken 3. Nach Abschluss: Extra Sprachen installieren oder Administrator öffnen

PHP-Konfiguration optimieren

nano /etc/php/8.2/apache2/php.ini
upload_max_filesize = 64M
post_max_size = 64M
max_execution_time = 300
memory_limit = 256M
systemctl restart apache2

SSL mit Let's Encrypt

apt install certbot python3-certbot-apache
certbot --apache -d example.com -d www.example.com

HTTPS erzwingen (in Joomla)

1. Administrator → System → Konfiguration 2. Server-Tab → HTTPS erzwingen: Gesamte Website 3. Speichern

Joomla-Grundlagen

Administrator-Bereich

URL: https://ihre-domain.de/administrator

Wichtige Menüpunkte

| Bereich | Funktion | |---------|----------| | Inhalt | Artikel, Kategorien, Medien | | Menüs | Navigation erstellen | | Erweiterungen | Plugins, Module, Templates | | Benutzer | Benutzerverwaltung | | System | Konfiguration, Updates |

Artikel erstellen

1. Inhalt → Artikel → Neu 2. Titel eingeben 3. Kategorie wählen 4. Inhalt schreiben 5. Speichern & Schließen

Menü erstellen

1. Menüs → Verwalten → Neu 2. Titel: Hauptmenü 3. Menüeinträge hinzufügen 4. Modul erstellen und Position zuweisen

Erweiterungen installieren

Über das Backend

1. System → Installieren → Erweiterungen 2. Datei hochladen oder URL eingeben 3. Installieren

Wichtige Erweiterungen

Sicherheit:
- Admin Tools
- Akeeba Backup

SEO:
- sh404SEF
- JCH Optimize

Formulare:
- RSForm
- Breezing Forms

E-Commerce:
- VirtueMart
- J2Store

Backup

Akeeba Backup (empfohlen)

1. Erweiterung installieren 2. Komponenten → Akeeba Backup 3. Backup starten

Manuelles Backup

#!/bin/bash
DATE=$(date +%Y%m%d)
BACKUP_DIR="/backup/joomla"

mkdir -p $BACKUP_DIR

# Dateien sichern
tar -czf $BACKUP_DIR/files-$DATE.tar.gz /var/www/joomla

# Datenbank sichern
mysqldump -u joomla -p'password' joomla > $BACKUP_DIR/db-$DATE.sql
gzip $BACKUP_DIR/db-$DATE.sql

Sicherheit

configuration.php schützen

chmod 444 /var/www/joomla/configuration.php

.htaccess-Schutz

# /var/www/joomla/.htaccess

# Administrator-Verzeichnis schützen
<Files administrator>
    Order Deny,Allow
    Deny from all
    Allow from 192.168.1.0/24
</Files>

# Konfigurationsdatei schützen
<Files configuration.php>
    Order Allow,Deny
    Deny from all
</Files>

Zwei-Faktor-Authentifizierung

1. Benutzer → Verwalten → Benutzer bearbeiten 2. Zwei-Faktor-Authentifizierung aktivieren 3. Google Authenticator einrichten

Regelmäßige Updates

1. System → Joomla-Aktualisierung 2. Auf Updates prüfen 3. Aktualisierung starten

Performance

Caching aktivieren

1. System → Konfiguration 2. System-Tab → Cache: Ein - Standard-Caching 3. Cache-Handler: Datei (oder Redis/Memcached)

Gzip-Kompression

# .htaccess
<IfModule mod_deflate.c>
    AddOutputFilterByType DEFLATE text/html text/plain text/xml
    AddOutputFilterByType DEFLATE text/css application/javascript
</IfModule>

Browser-Caching

<IfModule mod_expires.c>
    ExpiresActive On
    ExpiresByType image/jpeg "access plus 1 year"
    ExpiresByType image/png "access plus 1 year"
    ExpiresByType text/css "access plus 1 month"
    ExpiresByType application/javascript "access plus 1 month"
</IfModule>

Troubleshooting

Weiße Seite

# PHP-Fehler anzeigen
# In configuration.php
public $error_reporting = 'maximum';
public $display_errors = '1';

500 Internal Server Error

# Apache Error-Log prüfen
tail -f /var/log/apache2/joomla-error.log

# .htaccess prüfen
mv /var/www/joomla/.htaccess /var/www/joomla/.htaccess.bak

Datenbank-Verbindungsfehler

# Zugangsdaten in configuration.php prüfen
public $host = 'localhost';
public $user = 'joomla';
public $password = 'password';
public $db = 'joomla';

Passwort zurücksetzen

-- In MySQL
UPDATE j4_users SET password = MD5('neuespasswort') WHERE username = 'admin';

-- Oder sicherer (bcrypt hash generieren)
-- PHP: password_hash('neuespasswort', PASSWORD_BCRYPT);

Checkliste nach Installation

□ Admin-Passwort geändert
□ Site offline während Einrichtung
□ SSL-Zertifikat installiert
□ HTTPS erzwungen
□ Backup eingerichtet
□ Updates aktiviert
□ Unnötige Erweiterungen entfernt
□ Zwei-Faktor-Authentifizierung
□ Caching aktiviert
□ SEO-Einstellungen

Fazit

Joomla ist ein mächtiges CMS für mittlere bis große Websites. Die Installation ist unkompliziert, achten Sie aber auf Sicherheit und regelmäßige Updates. Nutzen Sie Erweiterungen sparsam und implementieren Sie ein zuverlässiges Backup-System. Mit der richtigen Konfiguration ist Joomla eine solide Basis für Ihre Webprojekte.