Dziś WordPress mi trochę dokuczył. A właściwie nie WordPress, ale kombinacja WP, PHP i MySQLa. Zachciało mi się przenieść bazę bloga na lokalny komputer. Wydawałoby się, że nic prostszego – phpMyAdmin, wybranie bazy, export to pliku SQL. Niby proste, ale zaglądam do zrzutu bazy, a tam jakby UTF-8, ale jakiś taki nie za bardzo. Wziąłem więc edytor wprawny w kodowaniu UTF-8, wpisałem znany nam znaczek „ó” i patrzę w hex jakie to ma kody: C3 B3. A w moim zrzucie bazy zupełnie inaczej – głupie o z kreską zakodowane na 4 bajtach, a nie 2. Niedobrze. Jeszcze parę prób i bez efektów. Robię import lokalnie i oczywiście nici z polskich znaków. Niedobre wieści dla potencjalnych przenosin pomiędzy serwerami oraz dla ewentualnych backupów.
Zacząłem drążyć temat i szukać jakiegoś rozwiązania. Znalazłem wtyczkę do WP – The One Click Backup Plugin for WordPress 1.5, która generalnie działa podobnie do eksportu poprzez phpMyAdmina. Zainstalowałem, użyłem, ściągnąłem plik SQL i kukam do środka. No, ten plik jest przynajmniej w UTF-8 i polskie znaczki prezentują się w nim nieźle. Połowa sukcesu.
Użycie tego pliku w lokalnym phpMyAdminie nie przyniosło chyba poprawnych rezultatów (bo nie pamiętam dokładnie), gdyż znów polskie znaki zostały zniszczone. Chyba jednak użyłem wtyczki do przywrócenia bazy i blog pojawił się tak, jak się spodziewałem.
Potem niespodzianka – znów zniknęły polskie znaczki! Okazało się, że zrestartowałem serwery i uruchomiły się z aktywnym PHP5. W PHP5 moje polskie znaczki zamieniają się na pytajniki. Przełączam Apacza na PHP4 i wszystko gra – znaczy w jakiś sposób moja zaimportowana baza zapamiętała, że system źródłowy to PHP4.
Na dodatek lokalny blog działa jedynie dla usera root bez hasła. Każdy inny, zdefiniowany user nie jest akceptowany i pojawia się dziwny komunikat o błędzie: „Fatal error: Call to undefined function: get_bloginfo()”. Niz z tego nie kumam. Spróbuję pomęczyć temat, ale moja niezawodna lokalna instalacja WP nie jest już taka niezawodna.