Migracja z Blox na WordPressa – HOWTO

Jak pisałem poprzednio, na pierwszy rzut do migracji poszedł blog o kapeli Bez Krótkich Spodni. Z migracją zeszło mi nieco dłużej, niż planowałem, głównie za sprawą hostingu, który się kończy, a którego nie przedłużam. Zamiast dedyka w Kimsufi zdecydowałem się na dwa VPSy w arubacloud.pl. Zaleta: taniej i SSD. Wada: potrzebuję dwie maszyny, co wiązało się z podziałem usług. I niestety, mimo konteneryzacji część usług jest od siebie zależna, głównie za sprawą domeny. W każdym razie zeszło więcej czasu, niż planowałem, ale jest to sensowniej podzielone.

Sama migracja na WordPress jest prosta. Najpierw instalujemy WordPressa. Long story short:

wget https://wordpress.org/latest.tar.gz
tar -zxf latest.tar.gz
chown www-data:www-data katalog

Pozostaje utworzenie bazy i użytkownika:

CREATE DATABASE wordpress_db;
GRANT ALL PRIVILEGES ON wordpress_db.* TO "wordpress_db_user"@"localhost" IDENTIFIED BY "VeryStrongPassword";

W przypadku instalacji opartej o serwer nginx i WordPressa trzeba jeszcze dodać jedno ustawienie w konfiguracji tego pierwszego:

location /bks/ {
    try_files $uri $uri/ /bks/index.php?$args;
}

Następnie uruchamiamy instalator WordPressa przez WWW i logujemy się. Warto usunąć przykładowy wpis i strony, z których nie korzystamy, można wybrać szablon (cóż, domyślny robi robotę jak dla mnie) i zrobić porządek w pluginach.

Niestety Blox wyciął użytkownikom możliwość eksportu wpisów, więc w tym miejscu musiałem posiłkować się autorskim skryptem, by zdobyć treść bloga z Blox w formacie wordpressowym. Potem szybkie dopieszczenie szablonu, zwłaszcza zdjęcia z nagłówka i… w zasadzie jest. Niestety, obrazki w takim rozwiązaniu są serwowane nadal z serwerów Blox, więc nie mamy pełnej niezależności i będziemy dostawać komunikat ostrzegawczy przy HTTPS, bo nie wszystkie treści są serwowane w sposób bezpieczny.

Jest jednak na to sposób. Okazuje się, że istnieje plugin Download External Images In Posts, który robi dokładnie to, na co wskazuje nazwa – pobiera obrazki ze zdalnego serwera, zapisuje je lokalnie i podmienia linki we wszystkich wpisach, także już istniejących. Działa zadziwiająco dobrze, choć jedna rzecz mi się w nim nie podoba: musi pozostać aktywny po zrobieniu roboty, bo linki nie są podmienione w treści. Ale z tym jestem w stanie żyć.

Ostatni szlif to dodanie statystyk Matomo (dawniej Piwik). Skorzystałem z pluginu Insert Headers and Footers, następnie wkleiłem tam stosowny JS.

Efekt finalny migracji na WordPress widać w pierwszym linku. Jak widać zachowana została treść wpisów, ich daty, komentarze, ich autorzy oraz daty. Działają także tagi i kategorie (tych ostatnich akurat nie używam na blogu BKS). Wszystko jest serwowane po HTTPS (i dodatkowo HTTP/2, ale to już zaleta nginx z odpowiednią konfiguracją), czyli szybko, bezpiecznie i SEO friendly. Tak, jak powinno być. 🙂

Zostało posprzątanie na starym blogu i przekierowanie w nowe miejsce, ale to już bez pośpiechu…

Dodam jeszcze, że WordPress spodobał mi się na tyle, że rozważam migrację tego bloga także na WP, zamiast statycznego Pelicana. Ale nad tym jeszcze chwilę pomyślę.

UPDATE Aby działały poprawnie wszystkie ustawienia dla bezpośrednich odnośników, trzeba podać katalog w konfiguracji, zgodnie z tym opisem.

UPDATE2 Warto zaktualizować URLe w treści postów, żeby kierowały na aktualny blog. Na szczęście można to zrobić automatycznie w prosty sposób. Na Blox schemat URLa posta to http://adresbloga.blox.pl/YYYY/MM/Tytul-wpisu.html
Zakładając, że nasz WordPress używa podobnego schematu, korzystamy z HTTPS i przenieśliśmy się na example.com, czyli mamy https://example.com/YYYY/MM/Tytul-wpisu należy… Zrobić backup bazy (lub całego bloga, polecam wpis o dodatkach do WordPressa). Opisany sposób działa dla MariaDB, goły MySQL podobno może mieć problemy, więc lepiej mieć do czego wrócić. Jak już mamy backup i wiemy co z nim robić, wydajemy polecenie:

update wp_posts set post_content = regexp_replace(post_content, 'http://adresbloga.blox.pl/20(.*?).html', 'https://example.com/20\\1');

W przypadku mojego bloga było to dokładnie:

update wp_posts set post_content = regexp_replace(post_content, 'http://rozie.blox.pl/20(.*?).html', 'https://zakr.es/blog/20\\1');

Uciec, ale dokąd?

Chwytliwy tytuł nie jest związany z filmem. Pod koniec zeszłego roku w komentarzu u Boniego wyraziłem przypuszczenie, że roku 2018 nie skończę na Blox i… stało się. Równia pochyła była widoczna od dłuższego czasu, najpierw wyłączane były funkcjonalności (API), potem doszły problemy ze stabilnością naprawiane… długo i nie do końca, bo błąd 503 się pojawia – relatywnie niski wynik Blox na mojej stronie ze statystykami nie jest przypadkiem. Zapowiadanych nowych funkcjonalności nie ma – nowy panel nie został nigdy ukończony, nowe szablony są nadal trzy na krzyż, mimo zapowiedzi. O HTTPS można zapomnieć, co oznacza, że wkrótce blogi na Blox będą oznaczone jako niezaufane w przeglądarkach, pewnie za jakiś czas polecą w dół w indeksach Google. Nawet blog o Blox nie jest już od dłuższego czasu aktualizowany. Znaczy, że przyszłość rysuje się niewesoło, było wiadomo od dłuższego czasu.

Zamknięcie serwisów blog.pl oraz bloog.pl na początku roku (Onet i WP, odpowiednio) pewnie dodało Agorze odwagi w wyciskaniu zysków z upadającej platformy i postanowiono dołożyć reklamy. O tym, że mogą zamieszczać reklamy, było wiadomo od dawna, bo jest to napisane w regulaminie odkąd pamiętam. I reklamy były serwowane na nieaktualizowanych blogach.

Jednak tym, co przelało czarę goryczy nie jest fakt zamieszczenia reklam, tylko forma. Zarówno forma reklamy, totalnie nieestetycznej, rozwalającej wygląd szablonu, wklejonej na samej górze (wiadomo, co jest najważniejsze… żeby żaden user nie zapomniał przypadkiem kliknąć, a blog to taka przylepka do reklamy), w dodatku dynamicznej (animacja), zasłaniającej jakieś 75% ekranu na moim smartfonie, jak i forma komunikacji zmian użytkownikom.

Otóż komunikacji nie było żadnej. A jak już użytkownicy zauważyli reklamę i zapytali na forum co jest grane, to usłyszeli:

Jednak koszty utrzymania platformy Blox.pl wzrosły i wprowadziliśmy zmianę – nieinwazyjne reklamy są wyświetlane teraz na wszystkich blogach.

Wolne żarty. Nie lubię zaglądać komuś do kieszeni, ale koszty hostingu, łącz i sprzętu komputerowego regularnie spadają. W tym ostatnim przypadku rośnie wydajność sprzętu/pojemność dysków, przy zachowaniu cen. Oczywiście Agora może sobie dowolnie księgować koszty i zapewne na papierze koszt utrzymania platformy wzrósł, niemniej można to ująć po prostu chcemy więcej zarabiać na Blox (i mamy w głębokim poważaniu, co sądzą o tym użytkownicy, albowiem silna nasza pozycja[1]). O „nieinwazyjności” reklamy było wyżej.

W każdym razie będę stąd znikał. Nie wiem jeszcze dokąd pójdę i kiedy dokładnie, ale znikam na pewno. Jestem w tej komfortowej sytuacji[1], że mam i backup bloga, i narzędzie do migracji z Blox do WordPressa (gdyby ktoś był zainteresowany, polecam kontakt jak w dziale kontakt; TANSTAAFL). Choć nie wiem, czy akurat na WordPressa chciałbym się przenieść. Z jednej strony de facto standard i wygodny, z drugiej statyczne generatory bloga (tu: Pelican) nadal kuszą… Tylko jest problem z komentarzami. Z drugiej strony chyba połowa komentarzy to spam lub krytpospam i usuwam, więc… Tak czy inaczej, dojrzałem do self hosted bloga, tym razem.

W każdym razie nie należy spodziewać się tu wielu nowych wpisów – energia idzie w migrację. Na pierwszy ogień idzie blog BKS, przy okazji pewnie nieco zaktualizuję treść. Można spodziewać się zmian związanych z przekierowaniem użytkowników w nowe miejsce i stopniowego(?) znikania treści. Jeśli korzystasz z kanału RSS innego, niż ten, to polecam aktualizację w czytniku RSS – dołożę starań, by zachować ciągłość. Dla tych, co bez RSS w – razie czego będzie mnie można znaleźć przez Planetę Joggera. Wpis na ostateczne pożegnanie też jest planowany, ale to jeszcze nie teraz.

[1] Trzeba przyznać, że wyłączenie API, plus właścicielstwo domeny, plus niezłe pozycjonowanie, plus brak kontroli nad nagłówkami przez użytkowników stawiają Agorę na mocnej pozycji, bo migracja dla przeciętnego użytkownika jest IMO niewykonalna, chyba, że ktoś będzie ręcznie wpisy przenosił… No ale o tym, że prawdziwe własność daje własna domena wiadomo nie od dziś.

Waze jako nawigacja

Jakiś czas temu wyrzuciłem Yanosika z telefonu, z powodu fatalnej nawigacji. Zgodnie z zapowiedziami szansę dostało Waze.

Podobnie jak Google Maps, nawigacja Waze należy do Google, jednak jest rozwijana odrębnie i ma zupełnie inną filozofię. O ile Google Maps to sucha, dość sprawna nawigacja, o tyle Waze bardziej przypomina ficzerami Yanosika. Personalizacja i gamifikacja jak najbardziej obecne. Jest możliwość zgłaszania przez użytkowników utrudnień na drodze. Zarówno patroli policyjnych, radarów, zamkniętych ulic, czy zwykłych prac drogowych. Jest też zbieranie punktów za aktywność.

Logo WazeŹródło: https://www.waze.com/about/press_resources

Pierwszą recenzję Yanosika pisałem po przejechaniu raptem 300 km, czyli – jak patrzę z perspektywy – o wiele za wcześnie. W przypadku Waze testowałem nieco dłużej – przejechałem ok. 1000 km na zalogowanym koncie, głównie w mieście. Nadal mało jak na pełny test, ale od czegoś trzeba zacząć. Tak naprawdę z Waze przejechałem ze dwa albo trzy razy tyle – dość długo korzystałem bez założonego konta i logowania. Można i tak, bez specjalnego uszczerbku dla funkcjonalności. Oczywiście gamifikacja leży wtedy, nie działa też zapamiętywanie ustawień, przynajmniej między upgrade/reinstalacją. W każdym razie z kontem jest lepiej i na tej wersji się skupię.

Pierwsza rzecz, która rzuca się w oczy po uruchomieniu Waze, to ekspozycja funkcji związanych z nawigacją i ukrycie całej reszty. Zaleta jest taka, że nawigacja jest na wierzchu. Wada zaś taka, że dobrnięcie do jakichś bardziej zaawansowanych ustawień chwilę mi zajęło. Części rzeczy w ogóle w aplikacji nie ma (albo nie umiem ich znaleźć). Przykładem może być ilość przejechanych kilometrów, którą sprawdzam przez WWW. Trudno mi jednoznacznie orzec, czy to zaleta, czy wada. Ustawienia domyślne są bardzo dobre.

Aplikacja potrzebuje dłuższego czasu od włączenia do gotowości do działania. Nie wiem, czy jest to kwestia słabszego telefonu, czy tak jest ogólnie ale… tak jest i jest to wada. Dodam, że podobnie ma Strava. Za to po włączeniu jest już bardzo przyjemnie. Nawigacja jest pewna (sorry, Yanosik), komunikaty przekazywane z sensownym wyprzedzeniem (sorry, Yanosik), adaptacja do zmian trasy szybka (sorry, Yanosik, „zawróć. zawróć. zawróć.”). Bardzo ładnie mówi po polsku (jest wybór lektora) i posiada rewelacyjną IMO funkcjonalność podawania nazw ulic, w które należy skręcić . Podaje nie tylko kierunek skrętu, ale też nazwę ulicy.

Trasy wybiera sensownie (sorry Yanosik), orientacyjne czasy dojazdu bardzo zbliżone do rzeczywistych. Potrafi też pokazywać informacje o natężeniu ruchu na sąsiednich ulicach czy zaproponować alternatywne trasy do właśnie wybranej. Taki powiew Google Maps. Akurat średnio korzystam, ale ktoś ze znajomych szukał nawigacji pokazującej natężenie ruchu.

Największą wadą nawigacji, którą zauważyłem, jest dość częste gubienie się na skrzyżowaniach po zatrzymaniu. Potrafi stwierdzić, że jesteśmy na ulicy prostopadłej i kazać skręcać. Chwilę po ruszeniu i chwilę przed dojazdem do skrzyżowania jest OK. Nie wiem, czy kwestia aplikacji, czy telefonu i… nie jest to tak upierdliwe na jakie wygląda z opisu – informacja o skręcie jest podawana za późno, by wykonać manewr.

Zgłaszanie zdarzeń na drogach jest znacznie bardziej szczegółowe niż w Yanosiku, ale przez to bardziej skomplikowane. Nie jest to jedno kliknięcie, tylko kolejne wybory (polecam lekturę opisu w FAQ). Być może kwestia przyzwyczajenia, na pewno większa bariera wejścia i trudniejsze, wymagające więcej uwagi zgłaszanie zdarzeń. Liczę jako wadę, pewnie dobrą sprawą byłby wybór wersji pełnej i uproszczonej.

Kolejny ficzer Waze to wyszukiwanie stacji benzynowych i porównywanie cen. W przeciwieństwie do Yanosika, Waze nie współpracuje z jednym koncernem, więc jest wybór. I jakiś pożytek dla tych, którzy raczej omijają rządowe stacje. Samo porównywanie jest oparte o aktualizacje cen przez użytkowników, więc traktować należy raczej orientacyjnie, bo stacje dość często zmieniają ceny. Na szczęście przy wyszukiwaniu jest podawany czas ostatniej aktualizacji.

Inny miły ficzer to proponowanie miejsc docelowych. Czyli uruchamiamy nawigację i dostajemy – na podstawie czasu (i miejsca?) – propozycję, żeby ustawić jako miejsce docelowe pracę, bez konieczności wyboru ręcznie. Dość przyjemne, działa nieźle. Oczywiście gdyby ktoś czuł się śledzony, to można tę opcję wyłączyć. Raczej ku poprawie samopoczucia, bo śledzi nas każda nawigacja. 😉 Wyłączyć można też widoczność naszego pojazdu na mapach.

Jeszcze inne usprawnienia to zapamiętywanie miejsca pozostawienia pojazdu. Można też zrobić zdjęcie, przydatne, jeśli z auta korzysta kilka osób. Możliwe jest też przesłanie orientacyjnego czasu dojazdu.

Pominąłem inne ficzery Waze, niezwiązane z samą aplikacją, typu live map czy carpooling. Raz, ze wykraczają poza badane zagadnienie, dwa, że nie używam. Podsumowując, uważam, że aplikacja jest zdecydowanie godna uwagi i warto dać jej szansę. W mieście jako nawigacja sprawdza się bardzo dobrze, kiedyś pewnie uzupełnię wpis o wrażenia z trasy.

UPDATE Przejechałem z nawigacją Waze 2300 km, parę razy poza miastem (choć na znanej drodze) – nadal OK, stacjonarne radary zgłasza, na nic innego nie było okazji. Nadal nie mam powodu do narzekania.