November 2025 (3 Tage)
Projektziele
- Migration von Joomla 3.10.12 zu Joomla 4.4 auf bestehendem Webserver
- Aufbau eines lokalen Testservers mit Parrot OS 6.4 für Joomla 5.4
Phase 1: Migration Joomla 3 → 4 (Online-Server)
Herausforderungen
- Inkompatible Extensions: ARTIO JoomSEF, Creative Contact Form, DJ-ImageSlider und com_weblinks waren nicht Joomla 4-kompatibel und mussten deaktiviert werden
- Fehlende Datenbanktabellen: Workflow-Tabellen (
vwzns_workflow_stages,vwzns_workflow_associations) sowie weitere J4-spezifische Tabellen fehlten komplett - Template-Probleme: Alte Joomla 3-Templates waren nicht kompatibel; Cassiopeia musste als Standard-Template konfiguriert werden
- Memory Limit: PHP Memory Limit von 64MB war zu gering und musste auf 256MB erhöht werden
- Veralteter Code: Extensions verwendeten
isAdmin()-Methode, die in J4 nicht mehr existiert
Lösungsansätze
- Systematische Deaktivierung inkompatibler Extensions über Datenbank-SQL-Befehle
- Manuelle Erstellung fehlender Datenbanktabellen (Workflows, History, Mail Templates, MFA, Guided Tours)
- Template-Styles-Tabelle bereinigt und Cassiopeia/Atum als Standard-Templates eingetragen
- Extension-Einträge für Templates in
vwzns_extensionsergänzt - Fehlende Spalten in bestehenden Tabellen hinzugefügt (z.B.
publish_up/downin Menu-Tabelle)
Ergebnis
✅ Backend funktionsfähig mit Joomla 4.4.14
✅ Wichtige Extensions erhalten: AcyMailing, Akeeba Backup
⚠️ Frontend hatte weiterhin Template-Probleme
Entscheidung
Neuinstallation von Joomla 4.4 mit frischer Datenbank aufgrund zu vieler Migrationsschäden
Phase 2: Lokaler Testserver mit Parrot OS 6.4
Systemvoraussetzungen
- Betriebssystem: Parrot OS 6.4 (Debian-basiert)
- Webserver: Apache 2.4.65
- Datenbank: MariaDB 10.11.14
- PHP: PHP 8.2.29
- Ziel: Joomla 5.4 Installation
Technische Probleme und Lösungen
1. SSH-Server Installation
Problem: Paketkonflikt zwischen openssh-client (Backports v10.0) und openssh-server (Stable v9.2)
openssh-server : Hängt ab von: openssh-client (= 1:9.2p1-2+deb12u7)
aber 1:10.0p1-7~bpo12+1 soll installiert werden
Lösung: Downgrade von openssh-client auf Stable-Version
sudo apt install openssh-client=1:9.2p1-2+deb12u7
sudo apt-mark hold openssh-client
sudo apt install openssh-server
2. Joomla Installation - HTTP 500 Fehler
Problem: Fehlende PHP SimpleXML Extension
Call to undefined function simplexml_load_file()
Lösung: Installation notwendiger PHP-Extensions
sudo apt install php8.2-xml php8.2-mysql php8.2-gd php8.2-mbstring
php8.2-zip php8.2-curl php8.2-intl php8.2-bcmath
3. Dateirechte-Probleme
Problem: Apache konnte Joomla-Dateien nicht lesen (Rechte: 770)
Lösung: Korrektur der Besitzer und Berechtigungen
sudo chown -R www-data:www-data /var/www/html/
sudo chmod -R 755 /var/www/html/
4. Datenbank-Verbindungsprobleme
Problem 1: MySQL Socket nicht gefunden (2002 No such file or directory)
Lösung: MariaDB-Service gestartet und Socket-Pfad verifiziert
Problem 2: Root-Zugriff verweigert
Ursache: MariaDB unter Debian nutzt unix_socket Authentication für root
Lösung: Separaten Joomla-Datenbank-User erstellt
CREATE DATABASE joomla5 CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
CREATE USER 'joomlauser'@'localhost' IDENTIFIED BY 'Test123';
GRANT ALL PRIVILEGES ON joomla5.* TO 'joomlauser'@'localhost';
5. Debug-Konstanten-Konflikt
Problem: JDEBUG wurde zweimal definiert (zum Debugging hinzugefügt, dann von Joomla als Konstante)
Lösung: Manuelle Debug-Zeilen aus Installation-Dateien entfernt
Gewonnene Erkenntnisse
Joomla-Migration
- Vorbereitungsphase kritisch: Alle Extensions VOR der Migration auf J4-Kompatibilität prüfen
- Datenbank-Schema: Joomla-Migrations-Tool erstellt nicht immer alle benötigten Tabellen korrekt
- Template-Abhängigkeiten: Templates müssen sowohl in
template_stylesals auch inextensionskorrekt eingetragen sein - Backup essentiell: Akeeba Backup vor Migration durchführen für möglichen Rollback
Parrot OS / Debian Server-Setup
- Backports-Management: Vorsicht bei gemischten Paketquellen (Stable vs. Backports)
- PHP-Extensions: Joomla 5 benötigt umfangreiche PHP-Module - vollständige Installation empfohlen
- MariaDB-Authentication: Root-User nutzt standardmäßig unix_socket, nicht Passwort-Auth
- Apache-Konfiguration:
AllowOverride Allund mod_rewrite müssen aktiviert sein - Error-Reporting: Debug-Modi und Logs sind unverzichtbar für Fehlerdiagnose
Erfolgreich implementiert
✅ Joomla 4.4.14 auf Online-Server (Backend funktionsfähig)
✅ Vollständiger LAMP-Stack auf Parrot OS 6.4
✅ Joomla 5.4 erfolgreich installiert auf lokalem Testserver
✅ SSH-Server für Remote-Zugriff konfiguriert
✅ Datenbankzugriff mit dediziertem User gesichert
Nächste Schritte
- Datenimport von Joomla 3-Backup in lokale Joomla 5-Installation testen
- Joomla 5-kompatible Versionen der Extensions installieren (AcyMailing, Akeeba, Community Builder)
- Template-Anpassungen für Joomla 5
- Produktivserver auf MySQL 8.0.15+ upgraden für Joomla 5-Migration
Projektdauer: 3 Tage
Komplexität: Hoch (Migration + Systemkonfiguration)
Status: Erfolgreich abgeschlossen