Es könnte so einfach sein, sein WordPress von 1&1 zu einem anderen Hoster umzuziehen.
- FTP-Verzeichnisse herunterladen, am Ziel raufladen, Rechte setzen.
- MySQL-Datenbank am Ziel erzeugen.
- Im 1&1-phpMyAdmin die Datenbank über Exportieren als Datei speichern.
- Beim Zielhoster im phpMyAdmin die Datenbankdatei via Importieren hochschießen.
- Fertig.
Wenn dann aber nur Schrott zu sehen ist oder eine Millionen Meldungen der Art is_dir(): open_basedir restriction in effect. File(/) is not within the allowed path(s):, dann liegt das wahrscheinlich an folgendem Problem (und kann wie folgt behoben werden):
DOCUMENT_ROOT
Und zwar liegen alle unsere Verzeichnisse beim Hoster ja nicht etwa in einem Hauptverzeichnis wie „/“, auch wenn das via FTP so aussehen mag.
In Wirklichkeit liegen unsere Dateien in einem „DOCUMENT_ROOT“ genannten Verzeichnis wie /Wichtig/Quark-n-Käse/Kunden/Zeug/WasMitZiffern876r5145/blubb/meine_kundennummer/meinPfadzuWP/.
Und genau diese Information speichert WordPress leider in seiner Konfiguration, die man per .SQL-Datenbankdatei vom 1&1 zum Zielsystem überträgt. Das kann natürlich nicht gehen.
Was tun?
Suchen & Ersetzen!
Der Trick ist, den alten Pfad durch einen neuen zu ersetzen.
- Vorbereitung:
Legen Sie eine Kopie der Datei der exportierten SQL-Datenbank an und lege sie diese irgendwo an sicherer Stelle ab. (Falls Sie im folgenden das Original verhunzen.) - Einfacher Weg:
Führen Sie VOR dem Importieren der MySQL-Datenbank ein Suchen & Ersetzen innerhalb der .SQL-Datei (das ist Plaintext, aber ein Editor wie Notepad++ ist empfehlenswert) durch. - Alternative, etwas schwieriger:
Führen Sie NACH dem Importieren der MySQL-Datenbank am Ziel ein Suchen & Ersetzen via phpMyAdmin durch. Geht genauso, aber nicht traut sich, mit phpMyAdmin rumzufummeln.
Doch was ist durch was zu ersetzen? Das ist individuell anders.
Den Original-Pfad finden
Zuerst brauchen Sie den Pfad beim Original, in meinem Fall bei 1&1, dem Hoster, bei dem ich ganz ganz dringend weg will mit dieser letzten Domain. Diesen Pfad finden Sie am einfachsten, indem Sie in der SQL-Datei (zum Beispiel) nach upload_path suchen. Das erhalten Sie eine Zeile wie diese:
(60, ‚upload_path‘, ‚/homepages/3/d271537192/htdocs/kaschemme_de/wp-content/uploads‘, ‚yes‘),
Farblich hervorgehoben ist der Pfad zu WordPress.
Genauer gesagt:
- /homepages/3/d271537192/htdocs ist der Pfad zum DOCUMENT_ROOT
- /kaschemme_de/ der Pfad zur WordPress-Installation
- zusammen ist also /homepages/3/d271537192/htdocs/kaschemme_de/ der „wahre Pfad“ zum Verzeichnis der WordPress-Installation auf dem 1&1-Server.
Der Ziel-Pfad finden
Tja. Raten. Beim Hoster fragen. Ich fand ihn in meinem Fall, bei All-Inkl.com, durch googeln von wo ist DOCUMENT_ROOT site:all-inkl.com. Demnach ist der Pfad auf dem Zielsystem in meinem Fall /www/htdocs/FTP-LOGIN/Ordner.
Eine *immer funktionierende* Alternative ist, auf dem Zielsystem ein Blanko-WordPress aufzusetzen, mindestens einen Bild-Upload durchzuführen, die SQL-Datenbank zu exportieren und auch dort nach upload_path zu suchen (oder das direkt im phpMyAdmin zu tun). Danach die Datenbank und das WordPress wieder löschen.
Die Angabe /www/htdocs/FTP-LOGIN/Ordner bedeutet im konkreten Fall:
- /www/htdocs/FTP-LOGIN/ ist der DOCUMENT_ROOT; wenn der FTP-Login (Benutzername) also w192837465 lautet, dann ist das zum Beispiel /www/htdocs/w192837465/
- /Ordner/ ist der Ordner der WordPress-Installation auf dem neuen Server, bei mir zum Beispiel /kaschemme.de/
- zusammengenommen also /www/htdocs/w192837465/kaschemme.de/
Dies ist der neue „wahre Pfad“ zum Verzeichnis der WordPress-Installation auf dem Ziel-Server.
Suchen und Ersetzen
Ergo ist zu suchen
/homepages/3/d271537192/htdocs/kaschemme_de/
und zu ersetzen mit
/www/htdocs/w192837465/kaschemme.de/
Und schon geht wieder alles. Und weil das zu meiner eigenen Überraschung reichte, dachte ich, ich teile dieses Wissen mit Ihnen – hoffentlich hilft es!