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 SpeicherplatzPHP-Extensions
Erforderlich:
- json
- simplexml
- dom
- zlib
- gd oder imagick
- mysqlnd
Empfohlen:
- mbstring
- intl
- opcacheLAMP-Stack installieren
Apache installieren
apt update
apt install apache2
systemctl enable --now apache2MySQL/MariaDB installieren
apt install mariadb-server mariadb-client
systemctl enable --now mariadb
# Sicherheit konfigurieren
mysql_secure_installationPHP installieren
apt install php php-mysql php-gd php-xml php-mbstring php-intl php-zip php-curlPHP-Version prüfen
php -vApache-Module aktivieren
a2enmod rewrite
systemctl restart apache2Datenbank erstellen
mysql -u root -pCREATE 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/joomlaBerechtigungen 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 apache2Web-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.iniupload_max_filesize = 64M
post_max_size = 64M
max_execution_time = 300
memory_limit = 256Msystemctl restart apache2SSL mit Let's Encrypt
apt install certbot python3-certbot-apache
certbot --apache -d example.com -d www.example.comHTTPS 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
- J2StoreBackup
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.sqlSicherheit
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.bakDatenbank-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-EinstellungenFazit
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.