Archiv für den Monat: März 2026

Duplicator Installation auf Linux Mint: Rechte anpassen

Wer mit WordPress zu tun hat, kriegt es früher oder später mit der Problematik zu tun: wie ziehe ich einen Blog um?

Eine viel benutzte und praktische Lösung ist der Duplicator, den erkläre ich aber jetzt nicht näher, das kann sich jeder selber anlesen, der ist bestens dokumentiert.

Na ja, jeden falls habe ich ein Duplicator-Archiv eines kleineren Blogs erstellt, das sieht so aus:

installer

Das kopiere ich in mein Localhost Home-Verzeichnis und versuche ganz blauäugig, den installer.php auszuführen. Der Installer antwortet natürlich mit einer Fehlermeldung, das Verzeichnis ist schreibgeschützt. Was nun? Da gibt es sicher mehrere Lösungen, mir war die Lösung mit dem Filezilla am sympathischsten, die probiere ich aus.

Den Filezilla kann man sich über die Anwendunsverwaltung flugs installieren, dann gehts los:

FileZilla via SSH (Secure Shell)

To connect FileZilla to

localhost (your own machine) on Linux Mint, you do not need a separate FTP server application like FileZilla Server (which is primarily for Windows). Instead, you should use the built-in SSH (Secure Shell) service, which FileZilla can access using the SFTP protocol.

Installiere SSH:
sudo apt update
sudo apt install openssh-server

Schauen obs lafft:

sudo systemctl status ssh

Notfalls manuell starten:

 sudo systemctl start ssh

Filezilla konfigurieren

  • Open File -> Site Manager.
  • Click New Site and configure the following:
    • Protocol: SFTP – SSH File Transfer Protocol
    • Host: 127.0.0.1 (or localhost)
    • Port: 22
    • Logon Type: Normal
    • User: Your Linux Mint username
    • Password: Your Linux Mint login password

Im rechten Fenster ins Serververzeichnis navigieren (var/www/http/) und das entsprechende Verzeichnis, bei mir ist es „rezepte“, mit der rechten Maustaste anklicken. Jetzt kann man die benötigten Rechte setzen.rechte

Ich hab bei „Unterverzeichnisse einbeziehen“ ein Häkchen gemacht, weiss nicht ob das wirklich nötig war. Das sollte eigentlich genügen.

Alternativ: Rechte setzen im Terminal

Gehe in das Verzeichnis, in dem die installer.php und das Archiv liegen (z. B. /var/www/html/rezepte)

cd /var/www/html/rezepte

Die beste Methode ist es, den Webserver als Eigentümer der Dateien festzulegen.

sudo chown -R www-data:www-data /var/www/html/rezepte

Verzeichnisse auf 755 setzen

find . -type d -exec chmod 755 {} \;

Dateien auf 644 setzen:

find . -type f -exec chmod 644 {} \;

Jetzt sollte der Installer laufen und die nötigen Dateien und Verzeichnise sowie die Datenbanktabellen anlegen.Nach erfolgreicher Migration solltest du die Rechte wieder auf einen sicheren Stand bringen und die Installationsdateien löschen.

sudo chown -R www-data:www-data /var/www/html
find . -type d -exec chmod 755 {} \;
find . -type f -exec chmod 644 {} \;
# Entfernen der Duplicator-Dateien
rm installer.php *.zip

Aufrufen der Duplicator-Installation

Navigiere im Browser zu deinem WordPress-Verzeichnis und starte die installer.php

Und hier machen wir eine kleine Pause, weil ich dazu eine jungfräuliche Installer-Installation brauche, die ursprünglichen Dateien werden bei erfolgreicher Installation gelöscht. Also kleine Pause, dann gehts weiter. Dieser Beitrag ist eh schon lang genug.


WordPress Installation auf Linux Mint

Jetzt wirds Zeit für die berühmte 5-Minuten-Installation von WordPress. Ob mir systemseitig noch was fehlt, werde ich im Laufe des Vorgangs schon noch merken, dann muss man nachfassen.

Normalerweise fängt man damit an, dass man sich die neueste WordPress-Version herunterlädt. Ich spare mir diesen Schritt, weil ich ein „ziemlich neues“ WordPress auf der Festplatte ligen hab, das muss es tun. Ich gehe also direkt zu Schritt zwei.

WordPress entpacken und Dateien in das dedizierte WebSerververzeichnis hochladen

Gehts scho los, das Verzeichnis var/www/html ist schreibgeschützt.  Ich öffne es als Administrator, lege ein neues Verzeichni wp_test an und kopiere meine WordPress-Dateien da rein. Dann surfe ich zu localhost/wp_test. Ah, was sehen meine entzückten Augen:

willkommen wp

Jetzt müssen als erstes die Datenbank daten eingetragen werden:

„Kann nicht in die Datei wp-config.php schreiben.

Du kannst die Datei wp-config.php manuell erstellen und den nachfolgenden Text dort einfügen.“

Ah ja. Dann wollen wir uns mal den Text kopieren. Und auf Installieren klicken.

5 minuten

Nach Eingabe der Basisdaten auf OK drücken, und was soll ich sagen, es funktioniert!

wp erster beitrag

Ich hasse übrigens den Block-Editor Gutenberg und nahme immer als erste heilige Handlung die Installation des Classic Edistor Plugins vor, das habe ich mir diesmal geschenkt. Aber einen Beitrag konnte ich auch so verfassen, und das reicht mir als Funktionstest. Also: Hurra, das erste WordPress auf Linux Mint läuft!

sekt

Das hat jetzt erstaunlich reibungslos funktioniert. Ich bin aber noch lange nicht fertig. Wir laufen nämlich auf PHP 8.3, und ich muss auf 8.4 testen. Aber nicht den übernächsten Schritt vor dem nächsten tun, jetzt muss ich erstmal testen, ob das mit dem Duplicator auf meinem LinuxRechner auch funktioniert. Dazu habe ich schon mal ein Backup eines kleineren Blogs durchgeführt. Morgen sehe ich dann, ob ich das lokal zum Laufen kriege.

Back to the Roots: ein lokales WordPress unter Linux, die Voraussetzungen

Die Lernkurve sollte recht steil sein, was ich bislang an Doku zum Thema gelesen habe, erfordert doch einiges an Linux-Kenntnissen, die ich nicht habe. Ich frett mich aber schon durch, wär doch gelacht!

Esrtmal machen wir eine Bestandsaufnahme. Wenn mans sauber macht, legt man für sowas ein Betriebshandbuch an, ich dokumentiere meinen Kram lokal in meinem WordPress-Arbeitsverzeichnis, und hier im Blog.

Webserver

Apache2. install über die Anwendungsverwaltung.

Starten: sudo systemctl start apache2

Funktional? sudo systemctl status apache2

Test: Aufruf von localhost im Browser, sollte die Apache Default Page bringen.

apachedefaultpage

Falls die Seite nicht angezeigt wird, prüfen ob man http://localhost sauber eingegeben hat, der Browser macht gern ein https draus. Beim ersten Aufruf kann es auch sein, dass man den Browser erst herzlich bitten muss, eine unsichere Seite anzuzeigen.

PHP (Version)

installieren:

sudo apt install php8.3-cli

Test

eine kleine php-Datei erzeugen, die beispielsweise dies enthält

phpinfo();

Die kommt ins Stammverzeichnis des Webservers, defaullt ist var/www/html (als Admin öffnen)

phpinfo

Wenn der Browser kein PHP interpretiert

Das ist der Fall, wenn beim Aufruf von phpmyadmin der Sourcecode angezeigt wird.
Oft ist PHP installiert, aber das Apache-Modul libapache2-mod-php fehlt.

Lösung: Installieren Sie das Modul und aktivieren Sie es. Öffnen Sie das Terminal und geben Sie ein:

sudo apt update
sudo apt install php libapache2-mod-php
sudo a2enmod php8.x # Ersetzen Sie 8.x durch Ihre installierte Version (z.B. 8.3)
sudo systemctl restart apache2

Datenbank Server

Mysql Server. Install über die Anwendungsverwaltung.

Starten: sudo systemctl start mysql

Funktional? sudo systemctl status mysql.

Konsole Testen:

sudo mysql --user=root mysql

prompt

Konsole beenden mit exit;

phpmyadmin

Install über die Anwendungsverwaltung.

Test: http://localhost/phpmyadmin/ im Browser aufrufen

phpmyadmin

Mit einem Admin-User einloggen, dann kann man gleich testen ob man eine neue Datenbank anlegen kann.

Haben wir alles?

Ich denke schon. Webserver, PHP, Mysql Datenbank, alles klar. Ein FTP-Programm brauchen wir nicht, da wir ja lokal arbeiten. Jetzt gehts gleich los, aber dazu gibt es einen neuen Baitrag.

Anmerkung: ich war voreilig. Flilezilla macht sich in Kombination mit SSH sehr nützlich, wenn es zum Dateirechteverwalten kommt. Später mehr.

 

Das war eine schwere Geburt: mysql-User mit admin-Rechten und Passwort

Das hat mich jetzt geschlagene anderthalb Tage lang beschäftigt, aber endlich habe ich ihn: meinen Admin-User mit Passwort!

Man kann sich nämlich bei der mysql-Installation ganz leicht in die Klemme bringen, der User root, der früher immer ohne Passwort ausgekommen ist, kriegt heutzutage anscheinend ein automatisch erzeugtes Passwort mit, und da hat man natürlich keine Chance. Ich habe wirklich stundenlang recherchiert, eine Nacht darüber geschlafen, und noch ein paar Stunden hingehängt. Letztendlich war das die Lösung:

mysql Konsole mit den folgenden Parametern aufrufen:

sudo mysql --user=root mysql

Am Prompt das Passwort des aktiven Linux-Users eingeben.

Folgende drei SQL-Befehle absetzen:

CREATE USER 'dbadmin'@'localhost' IDENTIFIED BY 'EinsSicheresPasswort$';

GRANT ALL PRIVILEGES ON * . * TO 'dbadmin'@'localhost';

FLUSH PRIVILEGES;

Soll der andere User berechtigen können, sieht der Grant so aus:

GRANT ALL PRIVILEGES ON *.* TO 'dbadmin'@'localhost' WITH GRANT OPTION;

Damit sollte man sich am phpmyadmin anmelden und alles machen können. Obs auch für einen WordPress Install reicht, wird sich zeigen, das mach ich als Nächstes.

Der erste Bug ist auch schon aufgetaucht: da fehlte noch die Berechtigung, neue Datenbanken anzulegen. Die kriegt der User mit:

(hier war ein Bug drin, wird nochmal überarbeitet)

Flush privileges und neu einloggen nicht vergessen!

Mal sehen, ob noch mehr Haken und Ösen auftauchen.

Jetzt brauch ich doch einen lokalen Webserver auf Linux… das übt!

Das zählt unter „Fingerübung“: einmal Install mit HIndernissen

Ich gebe zu, ich dachte erstmal ich mach es mir bequem und nehme den guten alten Xampp. Ich brauche nämlich doch einen lokalen Webserver, auch unter Linux. Warum? Als Testumgebung, weil man manche Sachen tunlichst nicht in der Produktivumgebung ausprobiert. Mein geliebtes Inselfisch-Kochbuch läuft nämlich seit dem vorletzten PHP-Update bei Strato nur noch mit der alten PHP-Version, und das ist erstens nicht schön und kostet zweitens eine monatliche Administrations-Gebühr, was mich anfuchst.

Frisch ans Werk, gegooglet und installiert, Xampp gibts auch für Linux, da heisst er Lampp. Nachdem ich erst dachte dass der Installer sich aufgehängt hat und nach etwas mehr googlen hab ich mich dann in Geduld geübt und den Installer eine halbe Stunde lang stehen lassen, dann ist er durchgelaufen. Und nachdem ich eine vorige nginx-Installation entfernt habe, die den Port 80 besetzte, liess sich auch der Apache starten!

Na wunderbar, aber es nutzt mir so erstmal nix, weil die PHP Version (8.1.25) leider ziemlich veraltet ist. Na ja, ich hätte ja auch beim googlen merken müssen, dass Xampp insgesamt als  veraltet zu werten ist… aber what shalls wie man auf neudeutsch sagt, schließlich sollte es auf Linux auch ohne gehen, Apache und Co sind ja native Linux. Ich geh mal recherchieren und melde mich später wieder.

Neue Anforderung

So, jetzt bin ich wieder da, mit einer etwas genaueren Zieldefinition, die war nämlich nicht ganz sauber. Also nochmal, mit etwas mehr Schmackes:

1. das inselfisch-Kochbuch läuft derzeit mit PHP 8.3.

2. die neueste empfohlene PHP-Version bei Strato ist 8,4

3.  beim testweise umstellen auf 8.4 ist das inselfisch-Kochbuch nicht mehr gestartet, deshalb hab ich auf die alte PHP-Version zurückgestellt und alles gelassen wie es war

4. aus den FAQs bei Strato hab ich beim querlesen entnommen, dass das manuelle testweise umstellen der PHP Version auf dem Server eine eine etwas haarige Angelegenheit ist, die meine Linux-Kanntnisse deutich übersteigt und einiges an Rechereche erfordert, z.B. wie man die .htaccess editiert. Ich habe auch was gelesen dass die manuell umgestellte PHP-Version nur solange gültig bleibt wie die Benutzersession bei Strato nicht beendet wird, aber da muss ich echt nochmal nachlesen. Da sind meine Webserver-Kenntnisse echt nicht gut genug.

Bei genauerer Überlegung stelle ich fest, dass ich eigentlich beide PHP-Versionen auf dem lokalen Webserver brauche, mit der Möglichkeit („on the fly“ wäre optimal) zwischen den Versionen umzuschalten. Ich redefiniere also mein Ziel. Und melde mich wieder ab zur neuen Recherche.

Apache intallieren

Der Webserver Apache lässt sich komfortabel über die Anwendungsverwaltung installieren, suche nach apache2. Gestartet und gestoppt wird er aus der Kommandozeile mit:

sudo service apache2 start

bzw:

sudo service apache2 stop

Zustand abfragen (erfordert Password), überprüfen ob der Server läuft:

sudo systemctl status apache2

Apache neu starten

sudo systemctl restart apache2

PHP Version installieren

sudo apt install php8.3-cli

Wenn der Browser kein PHP interpretiert

Das ist der Fall, wenn beim Aufruf von phpmyadmin der Sourcecode angezeigt wird.
Oft ist PHP installiert, aber das Apache-Modul libapache2-mod-php fehlt.

Lösung: Installieren Sie das Modul und aktivieren Sie es. Öffnen Sie das Terminal und geben Sie ein:

sudo apt update
sudo apt install php libapache2-mod-php
sudo a2enmod php8.x # Ersetzen Sie 8.x durch Ihre installierte Version (z.B. 8.3)
sudo systemctl restart apache2

Wenns das noch immer nicht gewesen war: ein neues jungfräuliches Profil in Firefox wirkt Wunder!

DB-Passwort und User nachträglich hinzufügen

Falls sie bei der Installation von MariaDB kein Passwort für ihren User vergeben haben, müssen sie das noch nachholen

CREATE USER 'dbadmin'@'localhost' IDENTIFIED BY 'meinpasswort';
GRANT ALL PRIVILEGES ON *.* TO 'dbadmin'@'localhost' WITH GRANT OPTION;
FLUSH PRIVILEGES;

Dazu muss die Datenbank Console im Terminal als root gestartet werden.

mysql -u root -p

Ein paar wichtige Kommandos:

sudo systemctl start mysql
sudo systemctl status mysql
sudo systemctl stop mysql
sudo systemctl restart mysql

Haben wir jetzt einen funktionalen lokalen Webserver?

Das testen wir bei der nächsten Session. Dann gehts „back to the roots“, wir installieren WordPress, aber diesmal unter Linux. Das wird spannend!