Skip to main content

💾 Installation & Einrichtung

MODX 3 – Installation & Einrichtung

Dieses Buch richtet sich an Admins und Entwickler, die MODX Revolution 3 produktiv auf einem Hosting (z.B. Plesk) oder auf einem eigenen lokalen Webserver installieren und die grundlegende Einrichtung korrekt durchführen möchten.

Stand dieser Anleitung:

  • MODX Revolution 3.1.2-pl
  • Apache 2.4.65
  • PHP 8.4.12
  • MariaDB 12.0.2

Bildschirmfoto_MODX3.jpg MODX 3 Manager Resourcenansicht für eine Ortsgemeinde


📖 Bucheinleitung

Was ist MODX?

MODX ist ein flexibles Content Management Framework (CMF) für individuell gestaltete Websites.
Es bietet ein stabiles Backend und volle Kontrolle über Templates, Chunks, TVs und Snippets.
Diese Struktur eignet sich sowohl für einzelne Landingpages als auch für komplexe Multi-Page-Websites mit unterschiedlichen Templates, Bereichen und Domains.
MODX verwaltet alle Seiten zentral im Ressourcenbaum und erlaubt durch Kontexte und Template-Variablen eine flexible Trennung und Steuerung mehrerer Sites innerhalb einer Installation.
Seit MODX 3 wird standardmäßig ein einfaches Beispiel-Template mit einer Startseiten-Ressource installiert, sodass nach der Erstinstallation direkt eine sichtbare Frontpage vorhanden ist. Dieses Template kann beliebig angepasst oder ersetzt werden.

Ziel dieses Buchs

  • Sichere, aktuelle Installation von MODX 3.x.x-pl auf einem Webhosting.
  • Saubere Basis-Konfiguration inkl. Datenbank, SSL, PHP und Friendly URLs.
  • Schritte sind auf Plesk ausgerichtet, funktionieren aber sinngemäß auch auf anderen Panels.

⚙️ Systemvoraussetzungen (Stand 2025)

  • PHP: 8.1 – 8.4
  • Datenbank: MySQL 8.0.17+ oder MariaDB 10.3+
  • Webserver: Apache 2.4+ oder NGINX 1.18+
  • PHP-Extensions: erforderlich: pdo_mysql, json, zlib, mbstring, curl, simplexml
    empfohlen: gd oder imagick
  • Empfohlene PHP-Einstellungen:
    • memory_limit: mind. 128 M (besser 256 M)
    • upload_max_filesize: mind. 8 M
    • post_max_size: mind. 8 M
    • max_execution_time: 120 s oder höher

Quellen:
Siehe unten im Abschnitt 🔗 Quellen (offizielle MODX-Dokumentation)

⚠️ WICHTIG (Server)

  • Zeitzone setzen

    • In der php.ini date.timezone = Europe/Berlin setzen.
    • Alternativ/zusätzlich in MODX: Systemsetting date_timezone auf Europe/Berlin.
    • Ohne gültige Zeitzone fällt PHP/MODX auf UTC zurück.
  • Session-Garbage-Collector (DB-Sessions in MODX)

    • MODX speichert Sessions standardmäßig in der Datenbank (modx_session).
    • Stelle sicher, dass die PHP-GC-Settings nicht komplett deaktiviert sind:
      • session.gc_probability ≥ 1 (z.B. 1)
      • session.gc_divisor = 100 (Standard)
      • session.gc_maxlifetime passend wählen (z.B. 1440)
    • Hinweis: Manche Linux-Distributionen setzen session.gc_probability = 0 und bereinigen Datei-Sessions via Cronjob. Das betrifft DB-Sessions von MODX nicht – dann wächst die Tabelle. Passe die PHP-Settings an oder nutze ein Monitoring/Tooling.

🔒 Dateirechte & PHP-Ausführung (Sicherheit)

  • PHP-Ausführungsumgebung:
    Auf modernen Hostings läuft PHP üblicherweise unter dem eigenen Systembenutzer (z.B. per FastCGI, FPM, suEXEC oder suPHP).
    Dadurch werden alle PHP-, FTP- und Webprozesse unter derselben Benutzer-ID (UID/GID) ausgeführt.
    → Das klassische „wwwrun“-Problem (Zugriffsfehler auf Dateien zwischen PHP und FTP) tritt dann nicht mehr auf.

  • Bei älteren oder günstigen Hostings:
    Falls PHP noch unter einem allgemeinen Webserver-Benutzer wie wwwrun oder apache läuft, kann es zu Rechtekonflikten kommen (z.B. keine Schreibrechte für hochgeladene Dateien).
    → In diesem Fall beim Hoster nachfragen, ob FastCGI oder PHP-FPM aktiviert werden kann.

  • Empfohlene Dateirechte:

    • Ordner: 0755
    • Dateien: 0644
    • Keine 777-Rechte vergeben!
      Diese Werte sind sicher und gewährleisten den Schreibzugriff für den Webserver, ohne unnötige Rechte an „Andere“ zu vergeben.

Installation & Einrichtung

Beispiel-Setup mit Plesk. Passe Domains, Pfade und Benennungen an deine Umgebung an.

🔐 Anmeldung in Plesk

  1. Melde dich in deinem Plesk-Panel an.
  2. Den Link und die Zugangsdaten solltest du von deinem Hoster erhalten haben.

📂 Verzeichnis anlegen

Im Menü Dateien das Hauptverzeichnis deiner Domain öffnen (z.B. httpdocs).
Darin ein neues Unterverzeichnis erstellen – keine Umlaute, alles klein geschrieben, z.B. modx.


🌐 Website-Einstellungen in Plesk

Im Menü Websites & Domains die gewünschte Domain auswählen und die Hosting-Einstellungen öffnen.

🔧 Hosting-Einstellungen

  • Domainname: meine-seite.tld
  • Bevorzugte Domain: meine-seite.tld oder www.meine-seite.tld (ich favorisiere ohne www)
  • Typ: Webseite
  • Dokumentstamm: /httpdocs/modx

💾 Webspace-Einstellungen

  • Systembenutzer und sicheres Passwort notieren (wird für SFTP/SSH verwendet)

🔒 SSL/TLS-Unterstützung

  • Zertifikat über Let's Encrypt aktivieren
  • Besucher über eine 301-Umleitung von HTTP zu HTTPS weiterleiten

⚙️ PHP-Einstellungen

  • PHP-Version: empfohlen 8.1 – 8.4
  • Handler: FPM oder FastCGI (je nach Hoster)
  • Erweiterungen: pdo_mysql, json, zlib, mbstring, curl, gd oder imagick, simplexml
  • memory_limit: mind. 128 M (besser 256 M)

🗃️ Neue Datenbank erstellen

  1. In der linken Seitenleiste auf Datenbanken klicken.
  2. + Datenbank hinzufügen.
  3. Felder ausfüllen:
    • 🏷️ Datenbankname: z.B. web42_modx
    • 👤 Datenbankbenutzername: z.B. web42_modx_user
    • 🔑 Passwort: sicher wählen und notieren
    • 🏠 Host: localhost (Port optional, z.B. localhost:3306)
    • 🌐 Zugehörige Website: deine-Domain.tld
    • 🔒 Zugriff: „Nur von localhost zulassen“
  4. Mit Datenbank erstellen bestätigen.

🧪 Datenbank prüfen

  • Nach dem Anlegen erscheint die Datenbank in der Datenbank Liste.
  • Über phpMyAdmin prüfen, ob sie leer ist.
  • Das ist korrekt – MODX legt später automatisch alle Tabellen an.

Optional: Im Reiter Operationen die Kollation auf utf8mb4_unicode_ci setzen.


⬇️ MODX herunterladen und hochladen

  1. Sollte durch die oben gezeigten Hosting-Einstellungen ein Ordner /httpdocs/modx/ von Plesk angelegt worden sein, musst du diesen zuerst löschen.
  2. Lade MODX Revolution 3.x.x-pl (Traditional Package) von der offiziellen Seite herunter (Download-Seite).
  3. Per Plesk File Manager in das Verzeichnis (/httpdocs/) hochladen.
  4. Das ZIP entpacken – danach sollte /httpdocs/modx-3.x.x-pl/ vorhanden sein.
  5. Diesen Ordner umbenennen z.B. in /httpdocs/modx/.
  6. Danach sollte u.a. /httpdocs/modx/setup/ vorhanden sein.

💡 Alternativ kann das Hochladen und Entpacken auch per (S)FTP, z.B. mit einem Programm wie FileZilla, erfolgen.


⚙️ Setup ausführen

  1. Rufe im Browser https://meine-seite.tld/setup/ auf.

  2. Sprache wählen → Neue Installation
    (Checkbox Sende X-Powered-By-Header deaktivieren)

  3. Datenbankzugang eintragen:

    • Datenbank-Typ: mysql
    • Datenbankserver (Host): localhost (ggf. mit Port)
    • Datenbank-Name, Datenbank-Benutzername, Datenbank-Passwort
    • Tabellen-Präfix: hfjat_ (nicht modx_; empfohlen wird ein eigenes, nur Kleinbuchstaben)
  4. Klicke auf Test. Nach erfolgreicher Datenbankprüfung kannst du den Zeichensatz der Datenbankverbindung prüfen bzw. anpassen:

    • Zeichensatz der Datenbankverbindung: utf8mb4
    • Collation: utf8mb4_unicode_ci
  5. Dann erneut Test ausführen und den Hauptadministrator anlegen.

  6. Nach erfolgreicher Installation die Option aktivieren, um das Setup-Verzeichnis zu löschen und anschließend den ersten Login durchführen.

  7. Manager-Login: https://meine-seite.tld/manager/


⚠️ Wichtiger Hinweis:

In meiner ersten MODX-Konfiguration musste ich link_tag_scheme auf abs stellen.

Grund: Im Template fehlte am Anfang der wichtige <base>-Tag:

<base href="[[++site_url]]">

Dieser Tag sorgt dafür, dass MODX relative Links korrekt auflöst. Ohne ihn können Link-Generierungen fehlerhaft sein, daher war abs kurzfristig notwendig.


🌐 Friendly URLs aktivieren (sprechende URLs)

  1. Im Manager → Systemeinstellungen (Zahnrad unten links).

  2. Nach core und Suchmaschinenfreundliche URLs filtern und folgende Werte setzen:

    • use_alias_path → Ja (ohne das bleiben alle Ressourcen direkt unter der Domain)
    • friendly_urls → Ja (mod_rewrite aktiv)
    • friendly_urls_strict → Ja (saubere, eindeutige Aliase)
    • friendly_alias_lowercase_only → Ja
    • friendly_alias_realtime → Ja
    • friendly_alias_strip_element_tags → Ja
    • friendly_alias_word_delimiter → -
    • friendly_alias_word_delimiters → -_
  3. Im Webroot (z.B. /httpdocs/modx/) die Datei ht.access in .htaccess umbenennen
    und sicherstellen, dass mindestens folgende Zeilen enthalten sind:

    RewriteEngine On
    RewriteBase /
    
  4. Core-Verzeichnis absichern
    Im Ordner /modx/core/ die Datei ht.access in .htaccess umbenennen.
    Damit wird der Zugriff auf das Core-Verzeichnis blockiert, und die Warnmeldung im Manager („Auf das Core-Verzeichnis kann über das Web zugegriffen werden“) verschwindet. Zugriffe auf Core-Dateien müssen danach HTTP-Status 403 oder 404 liefern.

  5. Cache leeren.

  6. Test
    Eine veröffentlichte Ressource ist nun über ihre sprechende URL erreichbar, z.B.:
    https://deine-domain.tld/alias.html
    (ohne index.php und ohne technische Parameter).

NGINX: passende Rewrite-Regeln laut MODX-Doku einrichten.

🇩🇪 Optionale Optimierung für deutsche Umlaute

Um deutsche Umlaute in URLs in Schreibweise wie ue, oe, ae zu wandeln
(z.B. „Über uns“ → ueber-uns), kann die Transliteration aktiviert werden:

  • friendly_alias_translit noneiconv

Anschließend Cache leeren und Aliase bei Bedarf neu speichern.
Dies ist optional – wenn iconv verfügbar ist – ohne Transliteration bleiben Umlaute im Alias erhalten.

🇩🇪 Deutsche Lokalisierung für MODX (24h-Zeit & korrektes Datumsformat)

In den Systemeinstellungen folgende Werte setzen:

Back-end Manager

  • manager_time_formatG:i
  • manager_week_start1

Lexicon and Language

  • localede_DE.UTF-8

System and Server

  • date_timezoneEurope/Berlin

Damit nutzt MODX korrektes deutsches Datumsformat, 24h-Zeit und Montag als Wochenbeginn.


🔁 Optionale Rewrite-Erweiterung (SEO / HTTPS / WWW)

Nur wenn du alle Zugriffe auf HTTPS und www umleiten willst, ergänze in deiner .htaccess ganz oben:

# Weiterleitung auf HTTPS und WWW erzwingen
RewriteEngine On
RewriteCond %{HTTPS} !=on [OR]
RewriteCond %{HTTP_HOST} !^www\. [NC]
RewriteRule ^(.*)$ https://www.%{HTTP_HOST}/$1 [R=301,L]  

Damit wird z.B. http://example.tld/seitehttps://www.example.tld/seite weitergeleitet.

💡 Achte darauf, dass dein SSL-Zertifikat sowohl für die Domain mit als auch ohne www gilt.
Hinweis: In dieser Anleitung wird eine www-Subdomain nicht verwendet.


🧩 Erste Schritte im Manager

  • Dateien:
    Standard-Assets befinden sich im Verzeichnis /assets/.
    Optional kannst du eigene Unterordner anlegen, z.B.
    assets/templates, assets/content oder assets/content/images.

  • Ressourcen:
    Unter „Ressourcen“ eine Homepage anlegen und veröffentlichen.


🛡️ Basis-Sicherheit

  • Starke Passwörter:
    Verwende komplexe und einzigartige Passwörter für alle Benutzerkonten.

  • Regelmäßige Updates:
    Halte den Core und alle Extras stets aktuell.

  • HTTPS erzwingen:
    Stelle sicher, dass der Zugriff ausschließlich über eine verschlüsselte Verbindung erfolgt.

  • Dateirechte:
    Setze die Schreibrechte für core/cache/ und core/config/ nur so restriktiv wie nötig, um unbefugten Zugriff zu verhindern.

  • Backup-Strategie einplanen:

  • Dateien + Datenbank regelmäßig sichern.

  • Backend härten:
    Der Standardpfad zum Backend (/manager) kann versteckt oder geändert werden, um Angriffe zu erschweren.
    Die genaue Vorgehensweise wird – inklusive einem optionalen Honeypot – auf einer separaten Seite erklärt.



❓Troubleshooting

  • Setup bricht ab: PHP-Version/Extensions und Rechte core/cache, core/config prüfen.
  • Friendly URLs gehen nicht: .htaccess aktiv? Apache AllowOverride gesetzt? Cache geleert?
  • Login-Probleme: Browser-Cache löschen, core/cache serverseitig leeren.

🔗 Quellen (offizielle MODX-Dokumentation)


🧮 System & Supportzyklen


🧱 Eingebaute MODX-Funktionen


🧩 Wichtige Extras