WP-CLI w praktyce - zarządzanie WordPressem z terminala

Aktualizacje jednym poleceniem, reset hasła, ratowanie strony bez kokpitu i search-replace, który nie psuje bazy. Przewodnik po WP-CLI z gotową ściągą 15 poleceń.

WP-CLI to oficjalne narzędzie do obsługi WordPressa z linii poleceń. Zamiast klikać w kokpicie, wpisujesz jedno polecenie w terminalu: aktualizacja wszystkich wtyczek, reset hasła administratora, podmiana adresów w bazie po migracji, eksport bazy - każda z tych operacji to jedna linijka. Na dużych stronach i przy pracy z wieloma witrynami różnica w czasie jest kolosalna, a część rzeczy (jak poprawna podmiana adresów w danych serializowanych) w ogóle nie ma dobrego odpowiednika w kokpicie.

Ten przewodnik przechodzi od pierwszego połączenia po zestaw poleceń, które realnie wykorzystasz: diagnostykę, aktualizacje, naprawę po awarii i migracje. Wszystkie przykłady działają na naszym hostingu - WP-CLI jest zainstalowane globalnie na każdym koncie.

Krok zero: połączenie SSH

WP-CLI uruchamia się na serwerze, więc potrzebujesz dostępu SSH. Na naszych serwerach logowanie odbywa się wyłącznie kluczem (bez hasła) - klucz publiczny dodajesz w Panelu Klienta, w zarządzaniu usługą hostingową, a instrukcję połączenia krok po kroku znajdziesz w centrum pomocy.

Po zalogowaniu przejdź do katalogu strony i sprawdź, czy narzędzie widzi Twoją instalację:

cd domains/twojadomena.pl/public_html
wp core version

Jeśli w odpowiedzi dostajesz numer wersji WordPressa - działa. Wszystkie polecenia WP-CLI wykonuje się z katalogu, w którym leży strona (tam, gdzie plik wp-config.php), albo z przełącznikiem --path=/sciezka/do/strony.

Diagnostyka strony w jedną minutę

Zanim cokolwiek zmienisz, warto wiedzieć, co masz. Te cztery polecenia dają szybki przegląd stanu instalacji:

PolecenieCo pokazuje
wp core verify-checksumsczy pliki WordPressa są zgodne z oryginałem - zmodyfikowane pliki rdzenia to klasyczny ślad włamania
wp plugin listwszystkie wtyczki z wersją, statusem i informacją o dostępnej aktualizacji
wp theme listto samo dla motywów - martwe, nieaktualizowane motywy to częsta furtka ataku
wp user list --role=administratorkto ma konto administratora - obce konto na tej liście to alarm

Polecenie wp core verify-checksums zasługuje na osobne zdanie: porównuje sumy kontrolne wszystkich plików rdzenia z oficjalnym wydaniem. Przy sprzątaniu po infekcji to pierwsza rzecz, jaką uruchamiamy - w połączeniu z krokami z poradnika o usuwaniu wirusa z WordPressa pozwala szybko oddzielić pliki zdrowe od podmienionych.

Aktualizacje jednym poleceniem

Najczęstszy powód, dla którego strony są włamywane, to zaległe aktualizacje. Z WP-CLI cały proces wygląda tak:

wp db export kopia-przed-aktualizacja.sql
wp plugin update --all
wp theme update --all
wp core update

Pierwsza linijka robi zrzut bazy - jeśli coś pójdzie nie tak, wracasz jednym poleceniem wp db import. Dobre nawyki przy aktualizacjach (kolejność, testy, co sprawdzić po) opisaliśmy szerzej w tekście o bezpiecznej aktualizacji WordPressa - WP-CLI nie zmienia zasad, tylko skraca wykonanie z kwadransa do minuty.

Przydatny wariant dla ostrożnych: wp plugin update --all --dry-run pokaże, co zostałoby zaktualizowane, bez wykonywania zmian.

Ratowanie strony, gdy kokpit nie działa

Największa siła WP-CLI ujawnia się wtedy, gdy do kokpitu nie da się wejść - po błędzie krytycznym, po utracie hasła, po ataku. Kilka scenariuszy z naszej praktyki:

Utracone hasło administratora (a mail z resetem nie dochodzi):

wp user update admin --user_pass=NoweBardzoMocneHaslo

Biały ekran po aktualizacji wtyczki - wyłączasz winowajcę bez dostępu do kokpitu:

wp plugin deactivate nazwa-wtyczki

A jeśli nie wiesz, która wtyczka położyła stronę, wyłącz wszystkie i włączaj po jednej: wp plugin deactivate --all. Ten sam mechanizm opisujemy od strony objawów w poradniku o białym ekranie WordPressa.

Strona przełączona na obcy motyw po włamaniu:

wp theme activate twoj-motyw

Włączenie trybu debugowania bez edycji plików:

wp config set WP_DEBUG true --raw
wp config set WP_DEBUG_LOG true --raw

search-replace: migracje bez zepsutych danych

To polecenie jest powodem, dla którego WP-CLI powinien znać każdy, kto przenosi strony. Po zmianie domeny lub przejściu na HTTPS trzeba podmienić stary adres w bazie danych. Problem w tym, że WordPress trzyma część ustawień w formacie serializowanym - ciągach, w których zapisana jest długość tekstu. Ręczna podmiana w pliku SQL zmienia tekst, ale nie długości, i dane stają się nieczytelne: znikają ustawienia motywu, rozjeżdżają się widżety, Elementor gubi style.

wp search-replace 'http://staradomena.pl' 'https://nowadomena.pl' --dry-run

Wariant z --dry-run pokazuje liczbę trafień w każdej tabeli bez zapisywania. Gdy wynik wygląda sensownie, uruchamiasz to samo bez tej flagi. WP-CLI rozumie dane serializowane i przelicza długości automatycznie - dlatego to jedyna metoda podmiany, jaką stosujemy przy migracjach. Cały proces przenosin, razem z DNS i testami, opisuje przewodnik o przeniesieniu WordPressa na nową domenę.

Baza danych: eksport, import, porządki

wp db export tworzy zrzut bazy w bieżącym katalogu, wp db import plik.sql go wgrywa - bez limitów czasu, które przerywają duże importy w phpMyAdmin. Dwa dodatkowe polecenia przydają się przy porządkach:

wp db size --tables - pokazuje rozmiar każdej tabeli. Jeśli baza spuchła, zwykle winne są tabele logów jakiejś wtyczki albo transienty.

wp transient delete --expired - usuwa wygasłe dane tymczasowe. Na starych instalacjach potrafi odchudzić bazę o dziesiątki megabajtów.

Regularny zrzut bazy przez WP-CLI to też najprostszy własny backup - jak go zaplanować i gdzie trzymać kopie, opisuje tekst o kopiach zapasowych strony. Na naszym hostingu kopie robimy codziennie automatycznie, ale dodatkowy zrzut przed każdą większą zmianą to dobry nawyk, który nic nie kosztuje.

Treść i media

Kilka poleceń, które ratują godziny przy pracy z treścią:

wp media regenerate - przebudowuje wszystkie miniatury zdjęć. Niezbędne po zmianie motywu, który używa innych rozmiarów obrazków.

wp post list --post_type=page - lista wszystkich stron z identyfikatorami. Przydatne, gdy szukasz identyfikatora do szablonu albo przekierowania.

wp comment delete $(wp comment list --status=spam --format=ids) - kasuje cały spam z komentarzy jednym ruchem.

wp cron event list - pokazuje zaplanowane zadania. Gdy strona robi coś dziwnego o dziwnych porach, tu często widać przyczynę.

Zasady bezpiecznej pracy z WP-CLI

WP-CLI wykonuje operacje natychmiast i bez pytania o potwierdzenie, więc kilka zasad trzymamy żelazną ręką:

Po pierwsze: przed każdą operacją zmieniającą dane - wp db export. Zrzut bazy waży zwykle kilkanaście megabajtów i robi się w sekundy, a cofnięcie błędu bez niego bywa niemożliwe.

Po drugie: wszystko, co ma wariant --dry-run, uruchamiaj najpierw z tą flagą. Dotyczy zwłaszcza search-replace.

Po trzecie: uważaj na polecenia znalezione w internecie z flagą --allow-root albo z rm w środku. Na hostingu współdzielonym nie pracujesz jako root, więc ta flaga nigdy nie powinna być potrzebna - jej obecność w gotowym skrypcie to sygnał, że autor pisał go na szybko i bez dbałości o bezpieczeństwo.

I po czwarte: WP-CLI nie zastępuje zabezpieczeń strony. Zestaw praktyk, które realnie podnoszą odporność WordPressa na włamania, zebraliśmy w poradniku 12 kroków hardeningu WordPressa.

Ściąga: 15 poleceń, które warto mieć pod ręką

ZadaniePolecenie
wersja WordPressawp core version
weryfikacja plików rdzeniawp core verify-checksums
lista wtyczekwp plugin list
aktualizacja wszystkich wtyczekwp plugin update --all
wyłączenie wtyczkiwp plugin deactivate nazwa
lista administratorówwp user list --role=administrator
zmiana hasła użytkownikawp user update login --user_pass=Haslo
eksport bazywp db export
import bazywp db import plik.sql
rozmiary tabelwp db size --tables
podmiana adresówwp search-replace 'stary' 'nowy' --dry-run
czyszczenie transientówwp transient delete --expired
przebudowa miniaturwp media regenerate
zaplanowane zadaniawp cron event list
włączenie logu błędówwp config set WP_DEBUG_LOG true --raw

Podsumowanie

WP-CLI nie jest narzędziem tylko dla programistów. Jeśli prowadzisz stronę na WordPressie i raz w miesiącu robisz aktualizacje, samo wp db export plus wp plugin update --all zwróci czas poświęcony na naukę już przy trzecim podejściu. A w sytuacji awaryjnej - gdy kokpit nie działa, a strona leży - znajomość trzech poleceń z sekcji ratunkowej bywa różnicą między kwadransem a całym dniem przestoju.

Na każdym pakiecie naszego hostingu WP-CLI jest gotowe do użycia od pierwszego logowania - wystarczy dodać klucz SSH w panelu.

Powiązane poradniki

Wszystkie poradniki z kategorii: WordPress

Powiązane usługi McProdukt

  • Hosting WWW NVMe - szybki hosting z LiteSpeed, darmowym SSL i codziennym backupem

Zobacz również