Eigentlich gab es keinen direkten Grund für diesen Schritt. Um jedoch dem politischen Wirrwarr, das die Vereidigung des neuen US-Präsidenten mit sich brachte, aus dem Weg zu gehen, war es eine nette Ablenkung.
Mein eigentliches Ziel war es, meine Bücher auszulagern und die Lesbarkeit durch ein WordPress-PDF-Skript zu verbessern. Zudem ist es für mich interessant zu sehen, welche Vor- und Nachteile die verschiedenen Content Management Systems (CMS) mit sich bringen.
Vergleich von Joomla und WordPress
Um es kurz zu überschlagen: Joomla und WordPress bringen jeweils Vor- und Nachteile mit, die man auf der Suche nach dem richtigen CMS abwägen muss. So hat WordPress eindeutig gestalterische Vorteile. Auch lassen sich, out of the box, leichter Mediendateien integrieren. Auch die Auswahl an Vorlagen und Plugins ist weitaus größer als bei Joomla. Dafür punktet Joomla bei der Rechtevergabe und das einfache Erstellen einer neuen Seite und deren Einbinden, was das Betreiben größerer Seiten mit mehreren Autoren ohne Vorkenntnisse ermöglicht, oder besser gesagt, vereinfacht. Für eine kleine Seite, die nicht ständig verändert werden soll, oder wenn man einen einfachen Blog betreiben möchte, ist WordPress vermutlich die bessere Wahl. Beide Systeme verdienen es, einen Blick darauf zu werfen.
Installationsanleitung
Bei der Installation traf ich dann auf eine größere Hürde, die mich dazu zwang, WordPress mehrere Male zu installieren. Dabei ist der Fehler recht leicht und schnell zu beheben, wenn man weiß, wie.
Falls Sie auch mal WordPress installieren wollen, Sie wie ich Proxmox nutzen und als Reverse Proxy NGINX vorgeschaltet haben, können Sie folgende Installationsroutinen nutzen. (Ubuntu 24.04)
1. Aktualisieren Sie die Paket-Archive und das System
Bevor Sie WordPress auf einem frischen System installieren, sollten Sie unbedingt Ihr Ubuntu-System aktualisieren, um sicherzustellen, dass Sie die neuesten Pakete und Sicherheitspatches auf dem Server haben. Öffnen Sie ein Terminal und führen Sie die folgenden Befehle aus:
sudo apt update
sudo apt upgrade
2. Installieren des LAMP-Stapels
WordPress benötigt einen Webserver, eine Datenbank und PHP, um zu funktionieren. Wir werden den LAMP-Stack verwenden, der für Linux, Apache, MySQL und PHP steht. Installieren wir nun die einzelnen Komponenten:
Der Webserver:
sudo apt install apache2
Nach der Installation starten wir den Webserver und stellen sicher, dass er beim Hochfahren des Systems automatisch gestartet wird:
sudo systemctl start apache2
sudo systemctl enable apache2
Die Datenbank:
sudo apt install mysql-server
Bevor wir die Datenbank einrichten, machen wir ein paar Sicherheitseinstellungen:
sudo mysql_secure_installation
Hier wird ein neues Root-Passwort gesetzt, der Fernzugriff auf die Datenbank sollte unterbunden und die Beispieldatenbank gelöscht werden:
Disallow root login remotely? (Press y|Y for Yes, any other key for No) : Y
Remove test database and access to it? (Press y|Y for Yes, any other key for No) : Y
Reload privilege tables now? (Press y|Y for Yes, any other key for No) : Y
PHP-Erweiterungen:
sudo apt install php libapache2-mod-php php-mysql php-curl php-gd php-mbstring php-xml php-xmlrpc php-soap php-intl php-zip -y
Um Ihre PHP-Installation zu testen, können Sie die Datei phpinfo.php
erstellen:
echo "" | sudo tee /var/www/html/phpinfo.php
Durch das Aufrufen der Datei mit Ihrer lokalen IP und dem Dateinamen (http://xxx.xxx.x.x/phpinfo.php
) erscheint in Ihrem Browser ein Fenster mit den Infos zu Ihrer aktuellen PHP-Installation. Die Datei liegt unter /var/www/html
, heißt phpinfo.php
und sollte aus Sicherheitsgründen schnell wieder gelöscht werden.
rm /var/www/html/
phpinfo.php
3. Erstellen einer Datenbank
Jetzt loggen wir uns in die Datenbank als Root-Benutzer ein:
sudo mysql -u root -p
Hier wird die Datenbank eingerichtet:
CREATE DATABASE wordpressdatenbank;
CREATE USER 'wordpressbenutzername'@'localhost' IDENTIFIED BY 'ein_starkes_Passwort';
GRANT ALL PRIVILEGES ON wordpressdatenbank.* TO 'wordpressbenutzername'@'localhost';
FLUSH PRIVILEGES;
EXIT;
Bitte ersetzen Sie den Benutzernamen (wordpressbenutzername
), den Namen der Datenbank (wordpressdatenbank
) und das Passwort (ein_starkes_Passwort
).
4. Download und Konfiguration von WordPress
Mit den folgenden Befehlen gehen wir zunächst in das Installationsverzeichnis von WordPress, laden die komprimierte Datei herunter, entpacken diese und vergeben die nötigen Rechte für die Ordner:
cd /var/www/html
wget https://wordpress.org/latest.tar.gz
tar xzvf latest.tar.gz
sudo chown -R www-data:www-data /var/www/html/wordpress
sudo chmod -R 755 /var/www/html/wordpress
Mit folgendem Befehl löschen wir die gepackte Datei wieder, da sie nicht mehr benötigt wird:
rm latest.tar.gz
Jetzt erstellen wir eine WordPress-Konfigurationsdatei, indem die wp-config-sample.php
Datei in wp-config.php
umbenannt wird:
sudo cp /var/www/html/wordpress/wp-config-sample.php /var/www/html/wordpress/wp-config.php
Jetzt tragen wir in die wp-config.php
Datei die Zugangsdaten für die Datenbank ein, indem wir sie durch folgenden Befehl öffnen:
sudo nano /var/www/html/wordpress/wp-config.php
define('DB_NAME', 'wordpressdatenbank');
define('DB_USER', 'wordpressbenutzername');
define('DB_PASSWORD', 'ein_starkes_Passwort');
define('DB_HOST', 'localhost');
Jetzt kommt der Punkt, weswegen ich dieses Tutorial überhaupt erstellt habe und weswegen ich WordPress auf der Fehlersuche mehrere Male installiert habe.
Scrollen Sie in der wp-config.php
Datei nach unten und tragen Sie zwischen
/* Add any custom values between this line and the "stop editing" line. */
und
/* That's all, stop editing! Happy publishing. */
folgenden Befehl ein:
/*
Handle SSL reverse proxy
*/
if ($_SERVER['HTTP_X_FORWARDED_PROTO'] == 'https')
$_SERVER['HTTPS']='on';
if (isset($_SERVER['HTTP_X_FORWARDED_HOST'])) {
$_SERVER['HTTP_HOST'] = $_SERVER['HTTP_X_FORWARDED_HOST'];
}
So sollte das aussehen:
/* Add any custom values between this line and the "stop editing" line. */
/*
Handle SSL reverse proxy
*/
if ($_SERVER['HTTP_X_FORWARDED_PROTO'] == 'https')
$_SERVER['HTTPS']='on';
if (isset($_SERVER['HTTP_X_FORWARDED_HOST'])) {
$_SERVER['HTTP_HOST'] = $_SERVER['HTTP_X_FORWARDED_HOST'];
}
/* That's all, stop editing! Happy publishing. */
Jetzt speichern wir die wp-config.php
Datei mit Strg-o und schließen diese mit Strg-x.
Durch die letztere Konfiguration kann WordPress nun die internen Anfragen von NGINX von http auf https übersetzen und die Seite wird korrekt dargestellt, da die mitgelieferte .htaccess
Datei von WordPress dies nicht tut.
5. Konfiguration des Apache-Servers
Jetzt konfigurieren wir noch den Apache-Server, damit der Besucher auf den richtigen Ordner weitergeleitet wird:
sudo nano /etc/apache2/sites-available/wordpress.conf
Hier kopieren wir folgenden Code ein und passen ihn an:
<VirtualHost *:80>
ServerAdmin Diese E-Mail-Adresse ist vor Spambots geschützt! Zur Anzeige muss JavaScript eingeschaltet sein.
ServerName ihredomain.de
ServerAlias www.ihredomain.de
DocumentRoot /var/www/html/wordpress
ErrorLog ${APACHE_LOG_DIR}/error.log
CustomLog ${APACHE_LOG_DIR}/access.log combined
<Directory /var/www/html/wordpress/>
AllowOverride All
</Directory>
</VirtualHost>
Erneut mit Strg-o speichern und mit Strg-x verlassen.
Jetzt aktivieren wir die wordpress.conf
Datei und deaktivieren die 000-default.conf
Datei:
sudo a2ensite wordpress.conf
sudo a2dissite 000-default.conf
Jetzt aktivieren wir das geänderte Modul und starten den Apache-Server neu:
sudo a2enmod rewrite
sudo systemctl restart apache2
Am besten rufen Sie Ihre Seite über Ihre Domain auf. Diese sollte bereits eingerichtet sein und ein Let's Encrypt-Zertifikat haben. Folgen Sie nun der Installation.
PHP-Einstellungen anpassen
PHP ist von Haus aus so eingestellt, dass per Browser Dateien von maximal 2 Megabyte hochgeladen werden können. 2 MB reichen für Bilddateien aus, möchten Sie aber mal Audiodateien, Videos oder PDFs bereitstellen, reichen diese schnell nicht aus.
Um das zu ändern, öffnen Sie die php.ini
:
nano /etc/php/8.3/apache2/php.ini
Ihre PHP-Version kann von meiner abweichen. Anstatt wie bei mir 8.3 kann es eine neuere Version sein. Welche Version Sie haben, können Sie in der phpinfo.php
Datei, die wir anfangs erstellt haben, ablesen. Oder Sie gehen durch cd /etc/php
in den entsprechenden Ordner. Durch die Eingabe von ls
wird Ihnen die Version Ihrer PHP-Installation angezeigt.
Ändern Sie post_max_size
von:
post_max_size = 2M
auf beispielsweise:
post_max_size = 128M
Leider ist das Finden der entsprechenden Zeile etwas lästig und sie befindet sich ziemlich weit unten. Im Shell im Browser ist die Suchfunktion nutzlos. Da es aber keinen Sinn macht, wegen der einen Änderung SSH einzurichten und die Firewall entsprechend zu konfigurieren, ist es ratsam, sich die zwei Minuten Suche zu nehmen.
Hilfreiche Ressourcen
Jeder Neuankömmling bei WordPress wird von dem Menü zunächst erschlagen, wie bei jedem anderen CMS auch. Geholfen hat mir sehr die Seite webseitenmachen.de. Die Tutorials sind prima und wirklich gut erklärt. Eine gut investierte halbe Stunde, um schnell zu brauchbaren Ergebnissen bei Joomla zu kommen.