Um eine vBulletin Datenbank mit einem Zeichensatz Latin1 nach UTF8 zu konverieren, sind einige Schritte notwendig.
1. Wartungsmodus
Zuerst den Wartungsmodus aktivieren, damit innerhalb der Umstellung kein neuer Inhalt mehr angelegt werden kann.
2. Backup
Vorher auf jeden Fall ein Backup der Datenbank und aller Dateien machen! Wenn was schief geht, kann man dann ohne grossen Aufwand wieder den alten Projektzustand herstellen.
3. Exportieren der Daten
Wir exportieren die Daten mit der Anweisung, dass keine Zeichensatz Eigenschaften mit exportieren werden und erzwingen den Export mit latin1
mysqldump --default-character-set=latin1 --skip-opt --skip-set-charset DATENBANK_NAME > dump_latin1.sql
4. Konvertieren des Datenbank Dumps
Mit dem Programm iconv führen wir nun die Konvertierung des Dump von Latin1 nach UTF8 durch.
iconv -f ISO-8859-1 -t UTF-8 dump_latin1.sql > dump_utf8.sql
5. Importieren der Daten
Mit dem MySQL Client importieren wir nun den Dump mit der Anweisung, dass es sich um UTF8 Daten handelt
mysql -u XXX --password=XXX --default-character-set=utf8 XXX < dump_utf8.sql
6. Anpassen der config.php
Nun passen wir die includes/config.php Datei und teilen darin vBulletin mit, dass wir nicht latin1, sondern UTF8 verwenden. $config['Mysqli']['charset'] = 'utf8';
Diese Zeile ist schon vorhanden, man muss nur die Auskommentierung entfernen. In Verbindung mit UTF-8 sollte immer PHP MySQLi verwendet werden (und nicht PHP MySQL)
<h3>7. Datastore und die Bitfelder neu erstellen</h3>
Jetzt ist es notwendig, dass man den vBulletin Datastore und die Bitfelder neu erstellt. Dazu muss man aus der vBulletin Archivdatei, die man aus dem vBulletin Kundenbereich herunterladen kann, die Datei tools.php in das Verzeichnis admincp/ kopieren. Wichtig ist auch, dass das Verzeichnis install/ mit Inhalt vorhanden sein muss. Dieses Verzeichnis findet man auch in der vBulletin Archivdatei unter upload/install.
Nachdem dann alle notwendigen Dateien am richtigen Ort liegen, für man über den Webbrowser die URL http://www.meinedomain.de/admincp/tools.php aus. Nach Eingabe der Kundennummer bekommt man eine Auflistung verschiedener Funktionen.
Im Abschnitt <em>Datastore-Cache</em> findet man drei Punkte: [Benutzergruppen/Foren], [vBulletin-Einstellungen] und [Bitfelder]. Führe alle drei Funktionen aus.
Danach kannst Du die Datei admincp/tools.php und das Verzeichnis install/ wieder vom Server löschen, da diese ein Sicherheitsrisiko darstellen.
</li>
<h3>8. Spracheinstellung anpassen</h3>
Jetzt meldet man sich im Adminbereich an und ändert unter <em>Sprachen & Phrasen</em> / <em>Sprachen verwalten</em> den HTML-Zeichensatz von allen bestehenden Sprachen auf <em>UTF-8</em>.
</li>
<h3>9. Sprachdatei neu importieren</h3>
Zum Abschluss müssen jetzt alle Sprachdateien neu im Admin-Bereich importiert werden. Dies kann man unter dem Punkt <em>Sprachen & Phrasen</em> / <em>Sprachen hochladen/herunterladen</em> finden. Falls man manuell Anpassungen gemacht hat, müssen diese wiederholt werden.
Nachdem alle Punkte durchgearbeitet wurden, sollte das Forum mit UTF-8 laufen und alle Umlaute richtig anzeigen. Falls etwas schief gelaufen ist, sollte man sich am besten nochmal in ruhe die einzelnen Schritt verinnerlichen und gegebenenfalls überlegen, ob bestimmte Befehle Anpassungen erfordern, weil die eigene Umgebung von einer "Standard"-Umgebung abweicht (was man auch unter Standard verstehen mag).
Es kann auch vorkommen, dass ein Plugin nicht mehr richtig arbeitet. Um Fehler von Plugins auszuschliessen, fügt man in der includes/config.php folgende Zeile ein:
<code lang="php">
define ( 'DISABLE_HOOKS', true);
Falls weiterhin die Probleme nicht zu lösen sind, empfiehlt es sich vorerst wieder das Backup einzuspielen und danach das Forum wieder in den Online-Modus zu schalten.
Falls alles gut gelaufen ist, kann jetzt natürlich der Wartungsmodus wieder deaktiviert werden.