Skip to content

Wszystko o WordPressie, tworzeniu stron — i nie tylko

🔧 Jak naprawić błąd „inne aktualizacje w toku” w WordPress

🔧 Jak naprawić błąd „inne aktualizacje w toku” w WordPress

Wchodzą Państwo do panelu administracyjnego, aby zaktualizować WordPress do najnowszej wersji, a tam napotykają Państwo mur. „Trwa inna aktualizacja". Przyciski aktualizacji są zablokowane, zegar nie tyka i nie wiadomo: czekać czy działać ręcznie.

Problem jest powszechny. Standardowy mechanizm WordPress ustawia blokadę core_updater.lock na czas aktualizacji jądra w tle, aby dwa procesy nie nakładały się na siebie. Blokada powinna zniknąć automatycznie po 15 minutach. Jednak nie zawsze tak się dzieje, baza danych „zapamiętuje" blokadę i trzyma ją godzinami, a nawet całymi dniami.

Poniżej trzy sposoby na zdjęcie blokady: od najprostszego (na jedno kliknięcie) do najszybszego (jedno polecenie w terminalu). Proszę wybrać ten, który odpowiada Państwa poziomowi dostępu do witryny.

💡 Szybki przegląd:

  • Proszę zainstalować bezpłatną wtyczkę Fix Another Update In Progress i nacisnąć jeden przycisk; to rozwiązanie jest odpowiednie, jeśli mają Państwo dostęp do panelu administracyjnego.
  • Proszę znaleźć i usunąć wiersz core_updater.lock w tabeli wp_options przez phpMyAdmin; metoda dla tych, którzy nie mają dostępu do panelu administracyjnego.
  • Proszę wykonać wp option delete core_updater.lock przez WP-CLI; natychmiastowa opcja dla programistów i osób swobodnie posługujących się terminalem.

Dlaczego pojawia się błąd „Trwa inna aktualizacja"

WordPress chroni się przed równoległymi aktualizacjami jądra. Gdy uruchamia się automatyczna aktualizacja, system tworzy w tabeli wp_options tymczasowy wpis z kluczem core_updater.lock. Dopóki ten klucz istnieje, ponowne uruchomienie aktualizacji jest niemożliwe i widzą Państwo komunikat „Trwa inna aktualizacja".

Błąd „Inna aktualizacja w toku” w panelu administracyjnym WordPress

Zgodnie z zamysłem twórców, po 15 minutach blokada jest zdejmowana automatycznie. W praktyce często tak się nie dzieje. Przyczyny: przerwanie procesu aktualizacji w tle z powodu braku pamięci na hostingu, konflikt z wtyczką buforowania lub przedwczesne zamknięcie karty przeglądarki podczas aktualizacji.

W rezultacie blokada wisi, a panel aktualizacji jest zablokowany. Wymusić jej zresetowanie można na trzy sposoby.

Metoda 1: wtyczka Fix Another Update In Progress

Najbezpieczniejsza ścieżka: nie ruszać bazy danych ręcznie, tylko pozwolić sprawdzonej wtyczce wykonać całą pracę za Państwa.

Proszę zainstalować Fix Another Update In Progress z katalogu WordPress.org. Wtyczka jest bezpłatna i robi dokładnie jedną rzecz: szuka klucza core_updater.lock w wp_options i usuwa go po naciśnięciu przycisku.

Po aktywacji proszę przejść do Ustawienia → Fix Another Update In Progress. Jeśli blokada jest aktywna, zobaczą Państwo ostrzeżenie i przycisk:

Strona ustawień wtyczki Fix Another Update In Progress

Proszę nacisnąć „Napraw blokadę aktualizacji WordPress". Wtyczka natychmiast usunie wpis z bazy i zobaczą Państwo potwierdzenie:

Komunikat o pomyślnym odblokowaniu aktualizacji

Następnie proszę wrócić do Kokpit → Aktualizacje; strona znów jest aktywna, WordPress jest gotowy do aktualizacji. Wtyczkę można pozostawić (nie obciąża witryny) lub usunąć do następnego razu.

Kilka niuansów. Wtyczka nie była aktualizowana od 2023 roku i formalnie nie była testowana z wersjami WordPress nowszymi niż 6.2, ale w praktyce działa poprawnie aż do WordPress 6.7, ponieważ struktura tabeli wp_options nie uległa zmianie, a blokada core_updater.lock nadal jest zwykłym wpisem, który można usunąć standardowym wywołaniem delete_option. Jeśli nie chcą Państwo instalować wtyczki „z historią", proszę przejść do metod 2 i 3.

Metoda 2: ręczne usunięcie blokady przez phpMyAdmin

Gdy panel administracyjny jest niedostępny (biały ekran, błąd krytyczny) lub z zasady nie chcą Państwo instalować dodatkowej wtyczki, blokadę można zresetować bezpośrednio w bazie danych. Potrzebny będzie dostęp do phpMyAdmin; jest on dostępny w każdym panelu zarządzania hostingiem (cPanel, ISPmanager, Plesk).

Proszę zalogować się do panelu hostingu, znaleźć sekcję „Bazy danych" i otworzyć phpMyAdmin:

Ikona phpMyAdmin w sekcji baz danych panelu cPanel

W lewej kolumnie proszę wybrać bazę danych swojej witryny WordPress. Proszę znaleźć tabelę wp_options (prefiks może się różnić, jeśli zmieniali go Państwo podczas instalacji) i nacisnąć przycisk „Przeglądaj" (Browse):

Przycisk przeglądania tabeli wp_options w phpMyAdmin

Otworzy się przed Państwem lista wierszy. Proszę znaleźć wiersz z nazwą opcji core_updater.lock i nacisnąć czerwony przycisk „Usuń" obok niego:

Usuwanie wiersza core_updater.lock z tabeli wp_options

phpMyAdmin usunie wiersz. Teraz proszę wrócić do panelu administracyjnego WordPress; strona aktualizacji jest odblokowana.

Jeśli wierszy w tabeli jest zbyt wiele i nie mogą Państwo znaleźć core_updater.lock wzrokiem, proszę skorzystać z wyszukiwania: zakładka „Szukaj" w phpMyAdmin, w polu option_name proszę wpisać core_updater.lock, nacisnąć „OK", a szukany wiersz się pojawi.

⚠️ Przed usunięciem czegokolwiek w phpMyAdmin proszę upewnić się, że aktualizacja w tle rzeczywiście się zakończyła lub została przerwana. Jeśli proces wciąż trwa, wymuszone usunięcie blokady może doprowadzić do niepełnej wymiany plików jądra. Proszę dać witrynie 5-10 minut po pojawieniu się błędu i dopiero wtedy działać.

Metoda 3: natychmiastowe zresetowanie przez WP-CLI

Dla osób pracujących z witryną przez terminal istnieje najszybszy sposób: jedno polecenie WP-CLI. Proszę otworzyć konsolę SSH serwera, przejść do głównego folderu WordPress i wykonać:

1wp option delete core_updater.lock

Jeśli blokada była aktywna, zobaczą Państwo komunikat Success: Deleted 'core_updater.lock' option.. Gotowe, można uruchomić aktualizację jądra:

1wp core update

Nawiasem mówiąc, polecenie wp core update samo ostrzeże o zawieszonej blokadzie i podpowie, że najpierw należy usunąć core_updater.lock. To oficjalnie udokumentowane zachowanie WP-CLI, a nie obejście.

Metoda jest wygodna również dlatego, że można ją zautomatyzować: dodać czyszczenie blokady do skryptu wdrożeniowego lub zadania Cron do regularnej konserwacji. Jeśli jednak nie pracowali Państwo wcześniej z WP-CLI, metody 1 i 2 w zupełności wystarczą; całkowicie rozwiązują problem.

Wideo: trzy sposoby w 3 minuty

Krótkie wideo demonstruje wszystkie trzy metody na rzeczywistej witrynie, od wykrycia błędu do naciśnięcia przycisku „Aktualizuj":

⁉️🤔 Często zadawane pytania

Dlaczego błąd nie znika po 15 minutach, tak jak obiecano?

Automatyczne resetowanie blokady jest przewidziane dla standardowego zakończenia procesu w tle. Jeśli aktualizacja została przerwana (skończyła się pamięć PHP, proces padł na hostingu, zamknęli Państwo kartę), WordPress nie otrzymuje sygnału „gotowe" i pozostawia core_updater.lock w bazie. 15-minutowy zegar to WP_Upgrader wywołujący wp_schedule_single_event, ale jeśli Cron na hostingu działa przez systemowy harmonogram, zdarzenie może się nie wykonać i blokada wisi całymi dniami. Ręczne usunięcie to jedyny gwarantowany sposób.

Czy trzeba usuwać wtyczkę Fix Another Update In Progress po naprawieniu błędu?

Nie jest to konieczne. Wtyczka waży kilobajty, nie dodaje obciążenia na frontendzie i nie rejestruje zbędnych haków. Można ją zostawić; następnym razem, gdy blokada się zawiesi, naprawa zajmie jedno kliknięcie. Jeśli jednak na witrynie obowiązuje zasada „żadnych zbędnych wtyczek", proszę śmiało usuwać: zresetowanie blokady przez phpMyAdmin lub WP-CLI zajmuje 30 sekund.

Czy można zapobiec pojawianiu się błędu w przyszłości?

Całkowicie wykluczyć się nie da, to standardowy mechanizm WordPress. Ale trzy rzeczy pomagają zmniejszyć prawdopodobieństwo. Proszę nie inicjować ręcznej aktualizacji, jeśli widzą Państwo powiadomienie o automatycznej aktualizacji w tle. Proszę skonfigurować Cron przez systemowy harmonogram serwera zamiast wp-cron.php; usunie to zależność od odwiedzających. Proszę zwiększyć limit pamięci PHP (memory_limit) przynajmniej do 256M: brak pamięci to najczęstsza przyczyna przerwania aktualizacji w tle.

Czym grozi wymuszone usunięcie blokady podczas aktywnej aktualizacji?

Jeśli usuną Państwo core_updater.lock w momencie, gdy WordPress podmienia pliki jądra, otrzymają Państwo częściowo zaktualizowaną instalację: połowa plików nowej wersji, połowa starej. W najlepszym razie błąd przy logowaniu do panelu administracyjnego, w najgorszym biały ekran. Przed zastosowaniem którejkolwiek z metod proszę odczekać 5-10 minut po pojawieniu się błędu. Proces w tle można sprawdzić przez menedżer procesów hostingu lub poleceniem top/htop przez SSH.

Czy należy się bać tego błędu

„Trwa inna aktualizacja" wygląda przerażająco, ale technicznie to tylko jeden wiersz w bazie danych. WordPress nie jest uszkodzony, dane nie ucierpiały, witryna działa, po prostu jądro postawiło tymczasową zaporę.

W szybkich sytuacjach proszę sięgnąć po wtyczkę Fix Another Update In Progress: jeden przycisk, pięć sekund, gotowe. Jeśli nie ma dostępu do panelu administracyjnego, phpMyAdmin rozwiąże problem w minutę. Jeśli pracują Państwo przez konsolę, wp option delete core_updater.lock i można działać dalej. Każda z trzech metod przywraca pełną kontrolę nad aktualizacjami witryny.