November 2025 (3 Tage)

Projektziele

  1. Migration von Joomla 3.10.12 zu Joomla 4.4 auf bestehendem Webserver
  2. 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_extensions ergänzt
  • Fehlende Spalten in bestehenden Tabellen hinzugefügt (z.B. publish_up/down in 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)

 
 
bash
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

 
 
bash
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

 
 
bash
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

 
 
bash
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

 
 
sql
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

  1. Vorbereitungsphase kritisch: Alle Extensions VOR der Migration auf J4-Kompatibilität prüfen
  2. Datenbank-Schema: Joomla-Migrations-Tool erstellt nicht immer alle benötigten Tabellen korrekt
  3. Template-Abhängigkeiten: Templates müssen sowohl in template_styles als auch in extensions korrekt eingetragen sein
  4. Backup essentiell: Akeeba Backup vor Migration durchführen für möglichen Rollback

Parrot OS / Debian Server-Setup

  1. Backports-Management: Vorsicht bei gemischten Paketquellen (Stable vs. Backports)
  2. PHP-Extensions: Joomla 5 benötigt umfangreiche PHP-Module - vollständige Installation empfohlen
  3. MariaDB-Authentication: Root-User nutzt standardmäßig unix_socket, nicht Passwort-Auth
  4. Apache-Konfiguration: AllowOverride All und mod_rewrite müssen aktiviert sein
  5. 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