Jeśli używasz WordPressa dłużej niż miesiąc, to pewnie przynajmniej raz dowiedziałeś się o jakiejś aktualizacji – wtyczki, motywu, albo WordPressa. Oprogramowanie jest rozwijane, pojawiają się nowe funkcje, wykrywane są błędy, które następnie są poprawiane. W ciągu ostatnich 12 miesięcy sam WordPress zmieniał wersję 14 razy, choć dzięki aktualizacjom automatycznym, część z nich mogłeś przeoczyć (WordPress wykonał je za Ciebie).
Do tego, aby aktualizować zawsze i to jak najszybciej nawołują zazwyczaj autorzy, blogi i serwisy newsowe, a także Twój WordPress, który o aktualizacjach przypomina na każdym kroku i zachęca do nich informując, że to tylko jedno kliknięcie.
Jeśli dodatkowo uświadomisz sobie, że znakomita większość kodu związanego z WordPressem rozwijana jest jawnie – czyli każdy ma dostęp do kodu poszczególnych wersji, a w większości przypadków także do informacji o zawartych w nich poprawkach (czyli o błędach zawartych w wersjach poprzednich), to chęć jak najszybszej aktualizacji powinna być wręcz naturalna.
Tyle w teorii. A jak to wygląda w praktyce?
Nie ma róży bez kolców
Niestety, jak to często bywa, nic w praktyce nie jest tak proste, jak to wygląda w teorii. Z aktualizacjami jest dokładnie tak samo i może się okazać, że po „jednym kliknięciu” spotka nas przykra niespodzianka, a powodów może być wiele. Być może nowa wersja nie została wystarczająco dobrze przetestowana, a może autor jakiejś wtyczki nie zadbał o zapewnienie kompatybilności z nową wersją i po aktualizacji strona przestanie działać.
Tego typu problemy po aktualizacjach sprawiły, że cyklicznie trafiam na pytania użytkowników, którzy zastanawiają się czy aktualizacje wykonywać. Czasem wolą na przykład wstrzymać się z podjęciem decyzji trochę czasu i nasłuchują informacji o problemach innych, itp. A czasem trafiają nawet na „ekspertów”, którzy jako rozwiązanie problemu sugerują przywrócenie poprzedniej wersji z backupu i po sprawie. (PS. Ekspert zapomniał w tym przypadku, że następnego dnia aktualizacja automatyczna wykona się ponownie, a problem powróci ;)).
To jak to w końcu jest z tymi aktualizacjami?
Pamiętam, że jak byłem mały i zadawałem komuś pytanie, to najbardziej nie znosiłem odpowiedzi „to zależy”. Przecież każde pytanie powinno mieć prostą odpowiedź. Niestety tak bywa rzadko i ze zwrotem „to zależy” oswoiłem się już na dobre. W tej sytuacji pasuje on jak ulał.
Wszystko zależy w tym przypadku od tego, co zawiera dana aktualizacja. Rozważmy kilka przypadków, a trochę się wszystko rozjaśni:
- Aktualizacja wtyczki dodającej Facebookowy przycisk like pod artykułami zmienia wygląd przycisku (i tylko to).
Pewnie nic się nie stanie, jeśli przez jakiś czas strona będzie pokazywać stare przyciski, więc spokojnie możesz poczekać, choć i obawiać się raczej nie ma czego, a nawet jeśli, to zawsze można przywrócić backup. - Aktualizacja tej samej wtyczki przycisków, ale tym razem wymuszona zmianą API Facebooka, przez co stare wersje wkrótce przestaną działać poprawnie.
Sprawa wygląda poważniej, ale najgorsze, co się może stać to, że przez jakiś czas przyciski przestaną działać; z drugiej strony ryzyko problemów znów jest niewielkie (i znów w razie czego backup będzie kołem ratunkowym). - Aktualizacja WordPressa zmieniająca sposób funkcjonowania jakiejś podstawowej funkcjonalności (np. biblioteki mediów czy taksonomii – to akurat czeka nas w nadchodzącej wersji 4.2).
Ryzyko zaczyna być już nieco większe, bo zależności zaczyna pojawiać się coraz więcej, czyli może się okazać, że nie wszystkie wtyczki zdążyły się do zmian dostosować. Z drugiej strony, jeśli aktualizację opóźnimy, to nic strasznego się pewnie nie stanie – po prostu nie będziemy mieli dostępu do nowych narzędzi. - Krytyczna poprawka WordPressa (lub wtyczki) poprawiająca błędy zabezpieczeń.
Jeśli pojawiła się poprawka, to błąd znany jest przynajmniej od kilku dni. To znaczy, że pewnie już zaczęły powstawać skrypty próbujące tę lukę wykorzystać (popularność WordPressa powoduje niestety, że opłaca się na oślep atakować strony próbując wykorzystać znane luki). Jeśli więc nie chcemy mieć nieprzyjemności, to warto niezwłocznie aktualizować. A jeśli wystąpi jakiś problem, to próbować go namierzyć i rozwiązać (ewentualnie zablokować tymczasowo funkcjonalność, która ten problem powoduje). - Krytyczna poprawka wtyczki naprawiająca błąd, dzięki któremu zalogowany użytkownik z prawami administratora może wykonać atak SQL Injection.
Z tego typu błędem mieliśmy niedawno do czynienia we wtyczce WooCommerce. Na pierwszy rzut oka wygląda bardzo poważnie i część blogerów się nawet tym strasznie przejęła i zaczęła siać panikę. Czy jednak był naprawdę jakiś powód do strachu? Błąd ten może przecież zostać wykorzystany tylko przez administratorów serwisu, a oni i tak mogą pewnie nieźle namieszać i bez korzystania z dziur w zabezpieczeniach. Oczywiście warto tę lukę załatać, ale z pewnością można do tego podejść ze spokojem i całość na zimno przetestować.
Zdrowy rozsądek i świadomość pomagają
Po zapoznaniu się z powyższymi punktami dość jasne powinno być, że aktualizacja aktualizacji nierówna i stąd trudność. Niektóre należy wykonać niezwłocznie, inne chcemy mieć jak najszybciej, a bez innych możemy spokojnie funkcjonować długie miesiące.
Niezależnie od tego, z którą aktualizacją mamy do czynienia, jest jednak kilka rzeczy, które możemy zrobić, aby samo kliknięcie „aktualizuj” nie powodowało u nas niepotrzebnego stresu.
Testowa wersja serwisu jako poligon doświadczalny
Idealną sytuacją jest posiadanie testowej kopii serwisu, na której wykonywane są wszelkie prace programistyczne czy aktualizacje, a dopiero po ich wykonaniu przenoszone są na serwis produkcyjny. Tutaj praktycznie nie ma się czym stresować, serwis produkcyjny zawsze działa (i może być mocno pozabezpieczany), a ewentualne problemy można na spokojnie poprawić nie utrudniając życia czytelnikom, klientom, itd. Niestety rozwiązanie to wymaga zarówno pewnych umiejętności technicznych, jak i czasu – przez co spotykane jest raczej przy większych i świadomie rozwijanych projektach.
Przed aktualizacją koniecznie backupuj
Jeśli masz mniejszą stronę i liczy się dla Ciebie każda oszczędność, to jako niezbędne minimum radziłbym przyjąć wykonanie kopii zapasowej przed każdą aktualizacją. To naprawdę nie jest takie trudne, szczególnie, że z pomocą przychodzą tu różne wtyczki, które pozwalają wykonać backup kilkoma kliknięciami (a dodatkowo potrafią wykonywać go samodzielnie zgodnie z ustawionym harmonogramem).
Lub powierz to zajęcie komuś, kto się na tym zna
Jeśli natomiast kompletnie nie masz czasu się tym zajmować, albo w ogóle nie interesuje Cię, co zawierają konkretne aktualizacje, to zleć to komuś, kto się na tym zna. Oczywiście nikt nie zrobi tego za Ciebie za darmo, ale może warto zastanowić się nad tym, na jakie straty naraża Cię strona/sklep niedziałający przez kilka godzin/dni? A co, jeśli strona będzie działać, ale ktoś przejmie nad nią kontrolę (i np. nie będziesz w stanie dostać się do zamówień w swoim sklepie, a tym samym ich realizować)? Pomijam już straty wizerunkowe na skutek tego typu awarii…