Umzug einer Web-Seite mit Update der Drupal-Version

warning: fread(): Length parameter must be greater than 0 in /var/www/elchs-kramkiste.de/lapurd/includes/common.inc(1695) : eval()'d code on line 19.

Meine mittels Drupal (Version 5.3) gestaltete Seite sollte auf eine neue Hardware umziehen (beim gleichen Provider). Zudem sollte (später!) auch die Drupal-Version auf den aktuellen Stand (Version 6.19) gebracht werden (dazu wird es in Kürze hier einen eigenen Beitrag geben. Nur soviel vorab: Es ist gelungen).

Im W3 gab es verschiedene Anleitungen zu diesem Umzugs-Szenario (Update blieb erst Mal außen vor), u.a. gelegentlich der Hinweis, dass dies auch 1:1 - also per "einfachem" kopieren - ging. Das weckte mein Interesse, ob dies tatsächlich "so einfach" sein konnte (vorweg: War es nicht, aber passieren konnte nicht viel, da meine bisherige Web-Präsenz ja nicht damit abgeschaltet wurde). Deshalb habe ich es zunächst auf die 1:1-Methode versucht bzw. gemacht.

Ich verfüge über ein täglich per "mysqldump" (mittels /etc/crontab-Eintrag) angefertigtes Backup der MySQL-Datenbanken sowie der wichtigsten Verzeichnisse meines bisherigen WEB-Servers (/etc, /var/www usw.), welches ich per SSH bzw. SCP von diesem Server "nur abzuholen" brauche.

Mit


mysql -u root -p < drupal_db.sql


das Backup auf dem neuen Server eingelesen (Passworteingabe für MySQL-User "root" voorausgesetzt), dabei kam es zur Meldung, dass ein "duplicate entry" für das Wort "lies" in der Zeile XYZ existierte. Die Datenübernahme brach an dieser Stelle ab. Es wurden nur Daten bis zur Tabelle "Search_total" übernommen.

Deshalb erst einmal in der betroffenen Tabelle ("Search_total", die ausgegebene Zeilennummer gibt den entsprechenden Hinweis auf den Fundort!) in der Datei drupal_db.sql den Eintrag "PRIMARY KEY ('word')" entfernt (Vorsicht, überflüssige Kommatas evtl. entfernen bzw. die Syntax des SQL-Statements korrigieren), konnte man ja per phpmyadmin wieder setzen (wenn man SQL als solches nicht so gut beherrscht).

Daten wie oben per phpmyadmin auf dem Server gestartet, die Drupal-DB angewählt, entsprechende Tabelle anzeigen lassen und den Eintrag "lies" gelöscht. Danach wollte ich den Primary Index auf 'word' setzen, was aber nicht ging, da noch ein "Duplicate Entry" vorhanden war, nämlich 'süße'.

Suchen nach diesem Inhalt wurden mit "0 Rows" quittiert. Also mal diese Sequenz "süße" (ohne '"') in eine Suchmaschine eingegeben und ich erhalte Hinweise auf das Wort "süße". Per phpmyadmin danach gesucht, gefunden, Eintrag gelöscht und ich konnte den Primary Index wieder auf "word" setzen.

Nun die neue Apache-Konfig am neuen WEB-Server durchgezogen, die Site erst mal unter der IP-Adresse des Servers als weitere virtuelle Domain konfiguriert (nachdem ich vorher den Inhalt des alten Domain-Verzeichnisses 1:1 vom alten WEB-Server auf den neuen kopiert hatte), so dass sie per "IP/Drupal-Verzeichnisname" (ohne "http://") erreichbar wird. Hierfür sollten sie sich mit der Einrichtung von virtuellen Hosts unter Apache 2 aber schon relativ gut auskennen (zumindest, wenn sie mehr als eine Domain auf diesem Server hosten wollen).

Dann per


GRANT ALL PRIVILEGES ON Drupal-DB.* TO bisherigerDrupalUser@localhost \
IDENTIFIED BY 'bisherigesDrupalPasswort';
FLUSH PRIVILEGES;


die Rechte des Drupal-Users auf die Datenbank restauriert. Diese Daten können sie der Datei "Ihr-Drupal-WWW-Verzeichnis/sites/default/settings.php" entnehmen. Wichtig ist das Punkt+Sternchen (".*") nach dem Datenbank-Namen, da sonst die Rechte nicht sauber gesetzt werden (leidvolle Erfahrung ;-) , da dann Drupal meldet, dass keine Verbindung zu MySQL hergestellt werden konnte).

Hinweis: Es geht so, es ist aber sicherlich nicht die einfachste / sauberste Art, eine Drupal-Installation von einem Server auf einen anderen Server umziehen zu lassen (mit gleichzeitigem Update).

Hinweis: Ich habe vorher keine Änderungen an der alten Drupal-Installation vorgenommen, also weder den Cache gelöscht, das Theme auf default zurück gesetzt, URL-Rewriting abgestellt oder, oder ... Alles 1:1 übernommen.

Hinweis: Sie nehmen sich dadurch evtl. die saubere Möglichkeit bzw. passende Gelegenheit, ihre Drupal-Installation auf den neuesten Stand zu bringen (was aber später erfolgen kann und sollte(!) ). Zudem brauchen Sie die Möglichkeit, nebenbei noch mehr oder weniger intensiv im Internet zu recherchieren. Mindestens 2 gesicherte Verbindungen per SSH sind für die Durchführung der Arbeiten eine große Erleichterung.