Zachęcam do udziału w konferencji nt. WordPressa - WordCamp Lublin 2017

publikacja: 25 października 2013, autor: , komentarze 42 https://wpninja.pl/artykuly/wordpress-i-automatyczna-aktualizacja-w-tle/

WordPress i automatyczna aktualizacja w „tle”

WordPress i automatyczna aktualizacja w „tle”

Od wersji 3.7 WordPress został wyposażony w funkcję automatycznej aktualizacji "w tle". Czy faktycznie przyczyni się to do zwiększenia bezpieczeństwa czy może jest to tylko niepotrzebny bajer?

Kiedy ostatni raz aktualizowałeś swoją przeglądarkę?

Jeśli korzystasz z Google Chrome to całkiem prawdopodobne, że… nie pamiętasz. Dlaczego? Bo kolejne aktualizacje ściągają i instalują się same. Wszystko dzieje się bez Twojego udziału, „w tle”. Co najwyżej, po udanej operacji zostaniesz uraczony stosowną informacją.

Funkcja automatycznych aktualizacji, która pojawiła się w wersji 3.7 to dokładnie ta sama idea. Ty robisz swoje a WordPress zajmuje się całą brudną robotą.

Teoria genialna, ale co z praktyką?

Gdy po raz pierwszy usłyszałem o wprowadzeniu wspomnianej funkcji byłem do niej bardzo sceptycznie nastawiony. Nie oszukujmy się – to przecież normalne, że raz na jakiś czas, po kliknięciu na magiczny przycisk „aktualizuj” nagle coś przestaje działać.

Dlaczego więc miałbym powierzyć tak istotną funkcję w ręce WordPressa? Co jeśli strona wysypie się w środku nocy a ja dowiem się o tym dopiero rano? Albo, jeszcze gorzej, po powrocie z wakacji?

Jeśli Ty również masz podobne obawy to przejrzyj poniższą listę pytań wraz z odpowiedziami. Kto wie, może dzięki nim, podobnie jak ja, zmienisz choć trochę swoje nastawienie?

Po co mi automatyczna aktualizacja?

Zabrzmi to nieco trywialnie, ale główną intencją autorów odpowiedzialnych za wprowadzenie tej funkcji było przede wszystkim zwiększenie bezpieczeństwa w sieci.

Coraz większa popularność WordPressa oraz otwartość jego kodu sprawiają, że rośnie liczba osób, które starają się wykorzystać jego słabości do osiągnięcia własnych celów. Twórcy dbają wprawdzie o to, aby krytyczne błędy były usuwane wraz kolejnymi poprawkami bezpieczeństwa, ale zanim końcowy użytkownik się o nich dowie i je zainstaluje mija nierzadko trochę czasu.

I tu właśnie objawia się cały sens automatycznych aktualizacji. Mówiąc krótko – chodzi o maksymalne skrócenie okresu, w którym WordPress jest najbardziej narażony na ataki.

Co tak właściwie będzie aktualizowane?

Standardowo, bez wprowadzania żadnych zmian w ustawieniach, WordPress będzie aktualizował tylko 2 rzeczy:

  • poprawki bezpieczeństwa:To te wersje WordPressa, które są oznaczone 3 numerami (np. 3.7.1) i nigdy nie zmieniają istotnego kodu a wprowadzają jedynie poprawki do krytycznych błędów.
  • tłumaczenia:Na chwilę obecną w grę wchodzi tylko tłumaczenie samego WordPressa. Docelowo będzie to dotyczyło również motywów i wtyczek znajdujących się w oficjalnym katalogu.

Czy aktualizacja może obejmować także inne rzeczy?

Tak, oprócz dwóch wymienionych wcześniej rzeczy istnieje możliwość uruchomienia funkcji także dla:

  • głównych wersji WordPressa (np. 3.8),
  • testowych wersji WordPressa (tzw. „bleeding edge”),
  • wtyczek,
  • motywów.

Aby to zrobić należy odpowiednio zmienić ustawienia co zostało szczegółowo opisane w encyklopedii. Można też skorzystać z wtyczki „Update Control”, którą opisał Bartosz na swojej stronie.

Trzeba jednak zaznaczyć, że zmiana standardowych ustawień jest oznaczona jako „eksperymentalna”. Ja zamieniłbym to na „stanowczo odradzana”, bo nie wyobrażam sobie, żeby ktoś miał tę opcję uruchomioną w innych niż testowe cele.

Jak wyłączyć automatyczne aktualizacje?

Aby wyłączyć aktualizacje wystarczy w pliku wp-config, który znajduje się w katalogu głównym WordPressa, zadeklarować poniższą stałą:

define( 'AUTOMATIC_UPDATER_DISABLED', true );

Czy takie aktualizacje są bezpieczne?

„Zakończyliśmy etap beta testów WordPressa 3.7 z liczbą 112 tys. 434 automatycznych aktualizacji i ani jednym krytycznym błędem”. – Andrew Nacin

To tylko jedna z dziesiątek wypowiedzi autorów, którzy zarzekają się, że jest to naprawdę bezpieczne. Czym jednak jest liczba 112 tys. dla skryptu, którego licznik pobrań w 3 dni osiąga wartość 1 miliona?

Sądzę, że pierwsze automatyczne aktualizacje nie obejdą się bez problemów, ale będą to pojedyncze przypadki a wraz z upływem czasu ich ilość faktycznie zmniejszy się do 0.

A teraz wersja bardziej optymistyczna.

Jeśli nie będziesz zmieniał standardowych ustawień to aktualizacja będzie obejmowała jedynie poprawki bezpieczeństwa oraz tłumaczenia. W praktyce oznacza to, że jeśli pojawi się poprawka bezpieczeństwa to WordPress zaktualizuje tylko te pliki, które ulegną zmianie. Zazwyczaj ich ilość można policzyć na jednej ręce.

Ryzyko, że coś pójdzie nie tak jest więc minimalne. Hurra!

Skąd będę wiedział, że aktualizacja została przeprowadzona?

Po zakończonej operacji WordPress wyśle Ci maila ze stosowną informację. Niezależnie od tego czy aktualizacja przebiegła pomyślnie, czy też zakończyła się niepowodzeniem.

Czy WordPress zmienia się w wielkiego brata?

To zależy od punktu widzenia.

Z jednej strony mamy absolutną swobodę w konfiguracji funkcji łącznie z możliwością całkowitego jej wyłączenia. Z drugiej strony, to że nie można tych ustawień zmienić z poziomu panelu administratora to nie przypadek. To przemyślana strategia i autorzy wcale się z tym nie kryją. Uznali po prostu, że to dla naszego dobra i cóż, pozostaje wierzyć im na słowo. Albo przerzucić się na Joomla!

Dobra, to był kiepski żart.

Co Ty sądzisz o automatycznych aktualizacjach „w tle”?

Jakie jest Twoje zdanie na temat wspomnianej funkcji?

Komentarze

  1. Jakub Milczarek 4 lata temu:

    Ja się bardzo cieszę, chociaż już czuję klientów, którzy będą żądali włączenia wszystkich aktualizacji automatycznych, a potem trzeba będzie szukać wtyczka po wtyczce co się popsuło :)

    Powstało świetne narzędzie, ale tylko dla rozważnych!

    odpowiedz
    1. Szymon Skulimowski 4 lata temu:

      Fajnie byłoby doczekać momentu kiedy takie aktualizacje będą *bezproblemowo* działały dla wszystkich możliwych rzeczy. Obawiam się jednak, że w przypadku wtyczek nie jest to w ogóle możliwe :(

      Ciekawe jak to wszystko wpłynie na ogólne obciążenie serwerów.

      odpowiedz
  2. Mariusz Szatkowski 4 lata temu:

    Coś czuję, że pogotowie WordPressowe będzie dobrą niszą w najbliższych miesiącach :)

    odpowiedz
    1. Szymon Skulimowski 4 lata temu:

      Jeśli okaże się, że auto-aktualizacja działa idealnie to może być w drugą stronę – zmniejszy się liczba zaatakowanych WP i nie będzie już tylu okazji do kasowania stałych klientów (instalacja poprawek bezpieczeństwa) :)

      odpowiedz
    2. Mariusz Szatkowski 4 lata temu:

      Znając życie, klienci modyfikują core zamiast robić poprawki w theme… Nieliczni robią child-theme…

      Jak mawiał wieszcz Stansław Anioł – i ten tego i tak dalej… poczekamy… zobaczymy…

      odpowiedz
    3. Szymon Skulimowski 4 lata temu:

      Tak, to byłby spory problem, ale do tego trzeba mieć ręcznie uruchomioną aktualizację motywów (lub głównych wydań WordPressa). :)

      odpowiedz
  3. OldShaterhan 4 lata temu:

    Przeglądam tak info jak włączyć te aktualizacje wtyczek, ale nie mogę dojrzeć jaki plik trzeba edytować. Jest to wp-config?

    odpowiedz
    1. Szymon Skulimowski 4 lata temu:

      Nie, w przypadku posługiwania się filtrami należy korzystać z pliku functions.php (znajduje się w katalogu aktualnie używanego motywu).

      odpowiedz
    2. amistad18 4 lata temu:

      Nie tylko functions.php, we wtyczce kod też zadziała. Jedną Bartek już opisał:
      http://wpzen.pl/jak-wlaczyc-lub-wylaczyc-automatyczne-aktualizacje-wordpressa-wtyczek-motywow/

      odpowiedz
    3. Szymon Skulimowski 4 lata temu:

      Tak, to dokładnie ta sama, którą już wymieniłem czyli Update Control, ktoś tu nie czytał artykułu :) Na chwilę obecną to chyba jedyna, która coś takiego robi.

      odpowiedz
    4. amistad18 4 lata temu:

      Wrzuciłem linka bo Bartek ją opisał, a Ty Szymon tylko podałeś linka :) Może koledze wyżej, albo innym się przyda taki opis, i screeny, bo w repozytorium takich nie ma.

      Artykuł czytałem, dodał bym tylko jeszcze że na WCEU Andrew Nacin wspomniał o mechanizmie który będzie po aktualizacji sprawdzał czy strona działa, a jeśli nie, to zrobi downgrade. Niestety nie jestem pewien czy to już jest dodane, czy dopiero będzie … coś mi się z grudniem kojarzy, ale nie mogę nigdzie żadnego źródła znaleźć i podać. Może Ty Szymon lepiej pamiętasz? Andrew wspominał o tym w dyskusji po prezentacji Otto.

      odpowiedz
    5. Szymon Skulimowski 4 lata temu:

      Fajnie, już się bałem, że nikt już nie czyta :). Masz rację, artykuł Bartka na pewno będzie przydatny dla tych użytkowników, którzy nie lubią grzebać w plikach (dodałem odnośnik do treści). Dzięki za sugestię!

      Nie byłem na prezentacji Otto, ale też kojarzę coś takiego z samego wystąpienia Adrewa o wersji 3.7. Miał to być bodajże końcowy etap automatycznej aktualizacji – skrypt miał sprawdzać czy strona działa prawidłowo a jeśli nie to przywracał kopię zapasową. Niestety nie wiem nic więcej.

      Mnie też ciekawi jedna rzecz a sam nie pamiętam dokładnie i nie mogę się dokopać do żadnych informacji w sieci. Dobrze kojarzę, że przy wykorzystaniu filtrów, będzie można ustawić aktualizację dla wybranych motywów i wtyczek? To byłoby akurat fajne dla zaufanych wtyczek jak np. Akismet :-) Pamiętasz coś takiego?

      Szkoda, że nie ma jeszcze materiałów z WCEU na WordPress.tv :)

      odpowiedz
    6. amistad18 4 lata temu:

      Też kojarzę że było o tym wspominane, tzn że będzie można poprzez filtry zezwalać na aktualizację konkretnym wtyczkom czy motywom – ale to jest chyba w planach, i będzie trzeba na to trochę poczekać. Aczkolwiek jeżeli potrzebujesz tego już teraz, i chciał byś się pobawić, to cytując Andrew’a:

      http://make.wordpress.org/core/2013/10/25/the-definitive-guide-to-disabling-auto-updates-in-wordpress-3-7/

      „The previous configuration options are all-or-nothing. You may, however, want something more fine-grained. The auto_update_$type filter (auto_update_core, auto_update_plugin, auto_update_theme, auto_update_translation) is fired for specific updates, as they are ready to be updated. This filter is passed the actual update object that describes what WordPress is about to update. This means you can selectively enable individual plugins or themes to update, for example, or whitelist upcoming core updates.”

      … i potem podziel się kodem na blogu :)

      Też czekam :) Jest tylko ten jeden filmik który kręcili na contribution day.

      odpowiedz
    7. Szymon Skulimowski 4 lata temu:

      Dzięki!

      W kontekście Twojego pytania o niepowodzenie aktualizacji i przywracanie do poprzedniej wersji:
      https://twitter.com/nacin/status/395579233088454656

      :-)

      odpowiedz
  4. Szymon Skulimowski 4 lata temu:

    Właśnie pojawiła się pierwsza poprawka bezpieczeństwa (3.7.1). Fajnie, bo reklamowe hasło „aktualizacje wykonywane kiedy śpisz” będzie miało dosłowne znaczenie w naszej strefie czasowej :)

    odpowiedz
    1. SpeX 4 lata temu:

      A mi właśnie nie chce wskoczyć do wersji 3.7.1

      odpowiedz
    2. Szymon Skulimowski 4 lata temu:

      Ja też jeszcze czekam.

      Mają tam taki sprytny wihajster, który umożliwia im stopniowe aktualizowanie kolejnych WP. A z racji, że jest to pierwsza tego typu akcja to robią to dosyć wolno. W ten sposób mają czas na analizowanie informacji zwrotnych i w razie wystąpienia jakiegoś błędu zatrzymanie procesu i wprowadzenie poprawek.

      odpowiedz
    3. SpeX 4 lata temu:

      Ooo właśnie dostałem maila z potwierdzeniem aktualizacji.

      odpowiedz
    4. Szymon Skulimowski 4 lata temu:

      Ja dostałem dzisiaj rano, ale tylko dla jednej strony. Reszta jeszcze czeka :)

      odpowiedz
  5. Mysza 4 lata temu:

    Ciekawe jak to się ma do aktualizacji gdy coś się zepsuje na stronie po takiej automatycznej aktualizacji:). Bo templejty pewnie są bezpieczne gorzej jak się zmienia bardziej kod, a potem błędy:D

    odpowiedz
    1. Szymon Skulimowski 4 lata temu:

      Jeśli nie będziesz zmieniał standardowych ustawień (co swoją drogą wcale nie należy do najłatwiejszych rzeczy) to nic złego nie powinno się stać (WP będzie wtedy aktualizował tylko poprawki bezpieczeństwa).

      Niemniej warto od czasu do czasu zrobić sobie backup WordPressa. :)

      odpowiedz
  6. Marcin Stasiak 4 lata temu:

    Jak dla mnie świetne rozwiązanie, mogę zapomnieć co ciągłych aktualizacjach dziesiątek/setek, serwisów, na różnych hostingach, z różną konfiguracją. Nawet jak coś się raz na kiedyś wysypie jest to mniej roboty niż dotychczas. :)

    odpowiedz
    1. Szymon Skulimowski 4 lata temu:

      I pomyśleć, że kiedyś trzeba było to robić ręcznie. Brrr… :)

      odpowiedz
    2. Paweł Knapek 4 lata temu:

      Nie trzeba było. Do tej pory można było korzystać m.in. z wtyczki Advanced Automatic Updates (wcześniej: Automatic Updater)

      odpowiedz
    3. Szymon Skulimowski 4 lata temu:

      Nie sprecyzowałem – miałem na myśli zamierzchłe czasy gdy wszelkie tego typu rzeczy trzeba było rzeźbić przez FTP :D.

      odpowiedz
  7. Kamysto 4 lata temu:

    Jak na razie mając wersje 3.7, musiałem ręcznie aktualizować ją do wersji 3.7.1 – na dodatek dwukrotnie to robiłem nie wiem właściwie dlaczego.

    odpowiedz
    1. Szymon Skulimowski 4 lata temu:

      Musiałeś w sensie, że pojawił się jakiś błąd podczas automatycznej aktualizacji czy po prostu nie mogłeś się doczekać?

      odpowiedz
  8. SpeX 4 lata temu:

    Jeszcze tak się zastanawiam, czy autoupdate wgra nam język WP?
    Chodzi mi o sytuację gdy ręcznie aktualizujemy 3.6 do 3.7 ENG – bo jeszcze nie ma wersji PL. I dopiero po tygodniu pojawia się PL – czy system aktualizuje nam ENG do PL?

    odpowiedz
    1. Szymon Skulimowski 4 lata temu:

      Nie znalazłem w sieci żadnych informacji na ten temat, ale z własnych obserwacji wynika, że to jeszcze nie działa. Pytałem też o to Wacława Jacka, który sprawuje pieczę nad polską wersją WP, ale on też nic nie wiedział.

      odpowiedz
  9. Kamil 4 lata temu:

    Automatyczne wyłączenie aktualizacji można dać w dowolnym miejscu pliku wp-confing.php?

    np:

    /* Wersja jezykowa WordPress (pl_PL dla polskiego) */
    define ('WPLANG', 'pl_PL');
     
    /* Wyłączenie funkcji automatycznej aktualizacji */
    define( 'AUTOMATIC_UPDATER_DISABLED', true );
    odpowiedz
    1. Szymon Skulimowski 4 lata temu:

      Tak, można to dodać w dowolnym miejscu pliku. Ważne tylko żeby było po deklaracji PHP, która znajduje się w pierwszym wierszu (<?php).

      odpowiedz
  10. Kamil 4 lata temu:

    Nie zapomniałeś usunąć przypadkiem spacji między początkiem define(_'AUTOMATIC i końcem true_); ?

    odpowiedz
    1. Szymon Skulimowski 4 lata temu:

      Oba zapisy są poprawne :)

      odpowiedz
  11. turbo 3 lata temu:

    WordPress staje się powoli systemem ze sztuczna inteligencja. Nie jestem wcale pewny czy to jest w pełni bezpieczne.
    Ostatnie wersje staja się naprawdę zaawansowane a nie zawsze można bezpiecznie aktualizować skrypt WordPress, ponieważ czasami nasz dostawca hostingu nie zapewnia nam odpowiedniego PHP na serwerze :)
    Pozdrawiam

    odpowiedz
    1. Paweł 3 lata temu:

      Nie powinno się winić WordPressa za problemy wynikłe z korzystania z atrap hostingów.

      odpowiedz
  12. turbo 2 lata temu:

    Współczesne strony internetowe zawsze opiera się na systemie CMS, a najlepszy CMS to WordPress. Duża popularność WP i duża liczba dostępnych dodatków do systemu powoduje ze skrypt jest najlepszy.
    WordPress to zdecydowanie sztuczna inteligencja.
    Moja strona firmowa „Turbo” hula na WordPressie i bije konkurencje.
    Jedyna wada tego CMS-a to brak interesujacych skorek.
    jeszcze nigdy nie widzialem ciekawej skorki.
    Duzo bym dal aby moja strona firmowa mogla by sie zaopatrzyc w ciekawy i unikalny szablon.

    odpowiedz
  13. Patryk 2 lata temu:

    czy jest jakaś opcja aby przed aktualizacja WP sprawdzic czy wszystkie wtyczki będą działały poprawnie ? po prostu boje sie aktualizować wp jak i same wtyczki ze względy na późniejsze ewentualne problemy z ich współpracą…

    odpowiedz
    1. Szymon Skulimowski 2 lata temu:

      Jedyna skuteczna w 100% metoda to utworzenie kopii 1:1 strony (dla mniejszych stron można posiłkować się wtyczką Duplicator, dla większych pozostaje ręczna zabawa) i testowanie na niej aktualizacji.

      Można też zrobić backup tuż przed aktualizacjami i skorzystać z niej w przypadku problemów. Na pewno warto wcześniej przejść przez proces odzyskiwania strony z takiej kopii żeby później wszystko poszło gładko i szybko.

      odpowiedz
  14. g-lo 2 lata temu:

    Ja mam natomiast takie pytanie, może ktoś ma jakiś pomysł. Posiadam dość mocno zmodyfikowanego WP jak i kilka wtyczek n nim, których w żadnym wypadku nie chciałbym aktualizować do najnowszej wersji. Automatyczne aktualizacje mam wyłączone jednak boję się, że kiedyś przez przypadek ręcznie zaktualizuję coś czego nie powinienem :] Da się wybrane wtyczki jakoś zablokować przed takimi przypadkowymi działaniami? Może jest jakaś wtyczka do tego?

    odpowiedz
    1. Paweł 2 lata temu:

      Z gotowych wtyczek, to np.: Block Plugin Update, Easy Updates Manager …

      odpowiedz
  15. Ryszard 8 miesięcy temu:

    Witam, jeżeli ktoś ma serwer na nazwa.pl, żeby automatyczne aktualizacje działały trzeba wyłączyć automatyczne sprawdzanie svn – http://kse.marketing/automatyczna-aktualizacja-wordpress-dziala-nazwa-home-itp/

    odpowiedz
  16. Stron 2 tygodnie temu:

    Szkoda, że czasami aktualizacja na naszej stronie internetowej powoduje różne błędy z innymi pluginami, ale cóż.. taka kolej rzeczy ;)

    odpowiedz

Dodaj własny komentarz