MODX CMS auf CentOS 7 mit Nginx, PHP 7.2 und MariaDB installieren

MODX ist ein quelloffenes Content-Management-System, das in PHP programmiert ist und für die Datenverwaltung MySQL oder MariaDB nutzt. Es eignet sich besonders für Unternehmen, die auf eine kontinuierlich gepflegte Online-Präsenz angewiesen sind. Entwicklern bietet MODX maximale Freiheit bei der Gestaltung und Struktur der Website. Gleichzeitig ermöglicht ein WYSIWYG-Editor auch technisch weniger versierten Anwendern die komfortable Pflege der Inhalte. Die Plattform kombiniert hohe Flexibilität mit ausgezeichneten Performance-Möglichkeiten.

Diese Anleitung basiert auf MODX Version 2.6.1, kann jedoch auch mit neueren Versionen kompatibel sein.

Voraussetzungen

  • Ein CentOS 7 Server
  • Ein Benutzer mit Sudo-Rechten
  • Eine Domain, die korrekt auf den Server zeigt

In dieser Anleitung verwenden wir modx.example.com als Platzhalterdomain. Ersetze diesen Domainnamen im Verlauf durch deine eigene Domain.

System vorbereiten

Bevor du mit der Installation beginnst, solltest du dein System gemäß der Anleitung „How to Update CentOS 7“ auf den aktuellen Stand bringen. Danach kannst du die erforderlichen Pakete installieren.

Nginx installieren

Nginx ist ein leistungsstarker Webserver, der sich hervorragend für moderne Webanwendungen eignet. Installiere Nginx mit den folgenden Befehlen:

sudo yum -y install epel-release
sudo yum -y install nginx

Aktiviere Nginx und sorge dafür, dass der Dienst beim Systemstart automatisch gestartet wird:

sudo systemctl start nginx
sudo systemctl enable nginx

 

PHP 7.2 installieren

MODX funktioniert mit PHP-Versionen ab 5.4. Um eine optimale Leistung und Sicherheit zu gewährleisten, installieren wir PHP 7.2. Da diese Version nicht im Standard-Repository enthalten ist, musst du zunächst das Remi-Repository aktivieren:

sudo rpm -Uvh http://rpms.remirepo.net/enterprise/remi-release-7.rpm
sudo yum -y install yum-utils
sudo yum-config-manager --enable remi-php72

Installiere nun PHP 7.2 sowie alle erforderlichen Erweiterungen für MODX:

sudo yum -y install php php-zlib php-mysqli php-curl php-json php-cli php-pear php-gd php-openssl php-xml php-mbstring php-fpm ImageMagick

Bearbeite anschließend die PHP-Konfigurationsdatei:

Heb die Kommentarzeile für die Zeitzone auf und trage deinen korrekten Wert ein:

date.timezone = Asia/Kolkata

Setze die Speichergrenze so, dass unbegrenzter Speicher zur Verfügung steht:

Setze den folgenden Parameter, um die Verarbeitung von Pfadinformationen zu deaktivieren:

Öffne nun die Konfigurationsdatei für den PHP-FPM-Pool und passe sie an:

sudo nano /etc/php-fpm.d/www.conf

Kommentiere den bestehenden Listener aus und füge eine neue Zeile hinzu:

;listen = 127.0.0.1:9000
listen = /var/run/php-fpm/php-fpm.sock

Ändere auch die Benutzer- und Gruppenangaben wie folgt:

listen.owner = nginx
listen.group = nginx

user = nginx
group = nginx

Starte den PHP-FPM-Dienst neu und aktiviere ihn für den automatischen Systemstart:

sudo systemctl restart php-fpm
sudo systemctl enable php-fpm

Erstelle abschließend das Verzeichnis für PHP-Sessions und setze die richtigen Berechtigungen:

sudo mkdir /var/lib/php/session
sudo chmod -R 777 /var/lib/php/session

Du kannst nun mit der Installation von MariaDB fortfahren.

 

 

MariaDB einrichten

MariaDB ist eine quelloffene Weiterentwicklung von MySQL. Da CentOS standardmäßig nur eine veraltete Version anbietet, musst du das MariaDB-Repository manuell hinzufügen:

echo "[mariadb]
name = MariaDB
baseurl = http://yum.mariadb.org/10.2/centos7-amd64
gpgkey=https://yum.mariadb.org/RPM-GPG-KEY-MariaDB
gpgcheck=1" | sudo tee /etc/yum.repos.d/mariadb.repo

Installiere anschließend MariaDB:

sudo yum -y install mariadb mariadb-server

Starte den Datenbankdienst und aktiviere den automatischen Start beim Booten:

sudo systemctl start mariadb
sudo systemctl enable mariadb

Sichere deine Datenbankinstallation mit dem folgenden Befehl:

sudo mysql_secure_installation

Beim Ausführen wirst du nach dem Root-Passwort gefragt – bei einer frischen Installation ist keines gesetzt. Drücke Enter, lege ein sicheres Passwort fest und bestätige alle vorgeschlagenen Sicherheitsoptionen mit „Y“.

Logge dich dann mit dem Root-Account in die MySQL-Shell ein:

Führe nun folgende SQL-Befehle aus, um eine neue Datenbank und einen Benutzer für MODX einzurichten:

CREATE DATABASE modx_data CHARACTER SET utf8 COLLATE utf8_general_ci;
CREATE USER 'modx_user'@'localhost' IDENTIFIED BY 'StrongPassword';
GRANT ALL PRIVILEGES ON modx_data.* TO 'modx_user'@'localhost';
FLUSH PRIVILEGES;
EXIT;

Du kannst die Namen für Datenbank und Benutzer frei wählen. Achte darauf, dass du StrongPassword durch ein starkes Passwort ersetzt.

MODX installieren

Lade die aktuelle MODX-Version als ZIP-Archiv herunter:

wget https://modx.com/download/direct?id=modx-2.6.1-pl.zip -O modx.zip

Um die aktuellste Version zu finden, besuche die offizielle MODX-Downloadseite. Installiere als Nächstes das Entpack-Tool unzip:

Entpacke das Archiv in das Webverzeichnis von Nginx:

sudo unzip modx.zip -d /usr/share/nginx/

Wechsle in das Verzeichnis und benenne den entpackten Ordner um:

cd /usr/share/nginx/
sudo mv modx-*/ modx/

Benenne nun die Datei ht.access in .htaccess um:

sudo mv /usr/share/nginx/modx/ht.access /usr/share/nginx/modx/.htaccess

Lege ein Verzeichnis für den Cache an und übertrage den Besitz an den Benutzer nginx:

sudo mkdir /usr/share/nginx/modx/core/cache
sudo chown nginx:nginx /usr/share/nginx/modx/core/cache

Erstelle anschließend eine leere Konfigurationsdatei und stelle sicher, dass alle Dateien im Webverzeichnis dem richtigen Benutzer gehören:

sudo touch /usr/share/nginx/modx/core/config/config.inc.php
sudo chown -R nginx:nginx /usr/share/nginx/

Erlaube abschließend eingehenden Webverkehr über HTTP und HTTPS in der Firewall:

sudo firewall-cmd --zone=public --permanent --add-service=http
sudo firewall-cmd --zone=public --permanent --add-service=https
sudo firewall-cmd --reload

 

Nginx Virtual Host konfigurieren

Damit deine MODX-Website über Nginx erreichbar ist, musst du eine neue Virtual-Host-Konfiguration erstellen. Öffne dazu eine neue Datei:

sudo nano /etc/nginx/conf.d/modx.example.com.conf

Füge den folgenden Inhalt in die Konfigurationsdatei ein:

server {
    listen 80;
    server_name modx.example.com;
    root /usr/share/nginx/modx;
    index index.php;
    client_max_body_size 30M;

    location / {
        root /usr/share/nginx/modx;
        if (!-e $request_filename) {
            rewrite ^/(.*)$ /index.php?q=$1 last;
        }
    }

    location ~ \.php$ {
        try_files $uri =404;
        fastcgi_split_path_info ^(.+\.php)(.*)$;
        fastcgi_pass unix:/var/run/php-fpm/php-fpm.sock;
        fastcgi_index index.php;
        fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
        include fastcgi_params;
        fastcgi_ignore_client_abort on;
        fastcgi_param SERVER_NAME $http_host;
    }

    location ~ /\.ht {
        deny all;
    }
}

Konfiguration testen

Nachdem du die Datei gespeichert hast, teste die Nginx-Konfiguration auf Fehler:

Wenn alles korrekt eingerichtet ist, erhältst du folgende Ausgabe:

nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful

Aktiviere die neue Konfiguration, indem du den Nginx-Dienst neu startest:

sudo systemctl restart nginx

 

MODX-Installation abschließen

Um die Installation von MODX fertigzustellen, öffne deinen Webbrowser und rufe folgende Adresse auf:

http://modx.example.com/setup

Daraufhin erscheint der Installationsassistent von MODX, in dem du zunächst die gewünschte Sprache auswählst. Anschließend klickst du auf „Neue Installation“ und gibst die Zugangsdaten deiner MariaDB- oder MySQL-Datenbank ein. Danach legst du ein Administrator-Konto an.

Mit einem Klick auf „Installieren“ wird die Konfiguration in die Datenbank geschrieben und der Setup-Prozess abgeschlossen. Du wirst dann direkt zum Administrationsbereich weitergeleitet, wo du mit dem Aufbau deiner Website beginnen kannst.

Fazit

Nach erfolgreicher Einrichtung von MODX auf deinem CentOS-7-Server mit Nginx, PHP 7.2 und MariaDB steht dir eine flexible und leistungsfähige Plattform zur Verfügung. Sie eignet sich sowohl für Entwickler als auch für weniger technisch versierte Anwender. Über das Administrations-Dashboard kannst du Inhalte pflegen und das Layout deiner Website individuell gestalten. Damit hast du die optimale Grundlage, um deine Webprojekte effizient umzusetzen.

Quelle: vultr.com

Jetzt 200€ Guthaben sichern

Registrieren Sie sich jetzt in unserer ccloud³ und erhalten Sie 200€ Startguthaben für Ihr Projekt.

Das könnte Sie auch interessieren: