WP-admin - jak wejść do panelu i co zrobić, gdy nie działa

Panel WordPressa otwiera się pod adresem Twojastrona.pl/wp-admin, a formularz logowania pod /wp-login.php. Jeśli oba prowadzą donikąd, przyczyn jest zwykle pięć: zmieniony adres logowania, pętla przekierowań, błąd krytyczny po aktualizacji, utracone hasło albo konto, które straciło uprawnienia. Ten tekst prowadzi przez każdą z nich, od rozwiązania najprostszego do takiego, które wymaga dostępu do bazy danych.

Podstawy opisaliśmy na stronie pomoc z WordPressem. Tutaj idziemy dalej: co zrobić, gdy formularz w ogóle się nie pokazuje albo pokazuje się i nie przyjmuje poprawnego hasła.

Zanim zaczniesz: zrób kopię

Wszystko poniżej, co dotyka plików albo bazy, robi się po wykonaniu kopii. Hosting zwykle ma to w panelu pod nazwą kopia zapasowa albo backup. Kopia z dzisiaj rano jest warta więcej niż godzina zgadywania.

Druga zasada: zmieniaj jedną rzecz naraz i po każdej sprawdzaj stronę. Inaczej po godzinie nie wiesz, co naprawiło, a co popsuło.

Trzecia, najczęściej pomijana: zapisuj, co już zrobiłeś. Przy kilku podejściach z rzędu łatwo drugi raz wyłączyć to samo i przeoczyć rzecz, której jeszcze nie sprawdzałeś.

Objaw i pierwszy ruch

Co widzisz Najczęstsza przyczyna Od czego zacząć
Strona logowania nie istnieje, błąd 404 wtyczka przeniosła adres panelu sprawdź /wp-login.php, potem wyłącz wtyczki przez FTP
Formularz wraca po zalogowaniu ciasteczka i rozjazd adresu z www tryb prywatny, potem WP_HOME i WP_SITEURL
Zbyt wiele przekierowań dwa mechanizmy HTTPS naraz zostaw jedno przekierowanie z trzech możliwych
Biała strona albo błąd krytyczny wtyczka lub motyw po aktualizacji wiadomość z trybem odzyskiwania, potem FTP
Hasło odrzucone, brak maila nieaktualny adres administratora wiersz poleceń albo phpMyAdmin
Brak wystarczających uprawnień zmieniony prefiks tabel klucze uprawnień w metadanych użytkownika

Gdzie zajrzeć, gdy nic z powyższego nie pasuje

WordPress potrafi zapisywać błędy do pliku, zamiast pokazywać je na ekranie. Włącza się to trzema stałymi w wp-config.php.

define( 'WP_DEBUG', true );
define( 'WP_DEBUG_LOG', true );
define( 'WP_DEBUG_DISPLAY', false );

Po odświeżeniu strony w katalogu wp-content pojawi się plik debug.log. Ostatnie linie zwykle zawierają ścieżkę do pliku, który wywala stronę, a ścieżka wskazuje wprost katalog wtyczki albo motywu. To szybsze niż wyłączanie wtyczek po kolei.

Pamiętaj o wyłączeniu tych stałych po naprawie. Zostawiony na stałe dziennik rośnie i bywa dostępny z zewnątrz.

Osobny plik z błędami prowadzi też hosting, zwykle pod nazwą zawierającą php-error. Bywa, że jest w nim więcej niż w dzienniku WordPressa, bo łapie także błędy, które zatrzymują stronę wcześniej.

Adres panelu działa, ale wraca do formularza

Logujesz się, strona mruga i znów pokazuje formularz. Bez komunikatu o błędnym haśle. To nie jest problem z hasłem, tylko z ciasteczkami sesji.

  1. Wyczyść ciasteczka tej jednej domeny i spróbuj w trybie prywatnym. Jeśli w trybie prywatnym działa, winne były ciasteczka.
  2. Sprawdź adresy w bazie. Jeśli strona działa pod adresem z www, a w ustawieniach zapisany jest wariant bez www, ciasteczko ustawia się dla jednej domeny, a sprawdzane jest dla drugiej.
  3. Wymuś adresy w pliku konfiguracyjnym. W wp-config.php, nad linią z napisem o zakończeniu edycji, dopisz dwie linie i podaj adres dokładnie w tej formie, w której strona działa.
define( 'WP_HOME', 'https://twojastrona.pl' );
define( 'WP_SITEURL', 'https://twojastrona.pl' );

Te dwie linie nadpisują to, co siedzi w bazie. Przydają się też wtedy, gdy ktoś wpisał zły adres w ustawieniach i odciął sobie wejście do panelu. Po naprawie można je zostawić, bo chronią przed powtórką.

Pętla przekierowań, czyli strona odsyła sama do siebie

Przeglądarka pokazuje komunikat o zbyt wielu przekierowaniach. Najczęściej odpowiada za to wtyczka wymuszająca HTTPS przy jednoczesnym przekierowaniu po stronie serwera. Oba mechanizmy odsyłają nawzajem.

Sprawdź kolejno: regułę przekierowania w pliku .htaccess, ustawienie w panelu hostingu i wtyczkę od certyfikatu. Zostaw jeden z tych trzech mechanizmów, nie dwa. Jeśli nie wiesz który, najbezpieczniej zostawić przekierowanie w panelu hostingu i wyłączyć wtyczkę.

Formularz się nie pokazuje, bo strona ma błąd krytyczny

Od wersji 5.2 WordPress przy błędzie krytycznym wysyła wiadomość na adres administratora. W środku jest odnośnik do trybu odzyskiwania, który wyłącza wadliwą wtyczkę i wpuszcza do panelu. Zacznij od poszukania tej wiadomości, także w folderze ze spamem.

Jeśli wiadomość nie przyszła, bo adres administratora jest nieaktualny, zostaje droga przez FTP albo menedżer plików w panelu hostingu.

  1. Wejdź do katalogu wp-content.
  2. Zmień nazwę katalogu plugins na plugins-off. To wyłącza wszystkie wtyczki naraz, bez kasowania czegokolwiek.
  3. Zaloguj się do panelu. Jeśli wszedł, winna jest jedna z wtyczek.
  4. Przywróć nazwę katalogu na plugins i włączaj wtyczki pojedynczo, sprawdzając stronę po każdej.

Gdy to nie pomogło, tym samym sposobem sprawdź motyw: zmień nazwę katalogu aktywnego motywu, a WordPress przełączy się na domyślny. Strona będzie wtedy wyglądać brzydko, ale ma wpuścić do panelu.

Hasło nie działa i nie przychodzi wiadomość o resecie

To najczęstszy scenariusz przy stronach przejmowanych po innej firmie: adres administratora wskazuje na skrzynkę, której nikt już nie obsługuje. Formularz odzyskiwania działa, wiadomość wychodzi i nie dociera do nikogo.

Droga pierwsza, najbezpieczniejsza. Jeśli hosting daje dostęp do wiersza poleceń, jedno polecenie ustawia nowe hasło i nie trzeba dotykać bazy.

wp user update admin --user_pass='NoweTrudneHaslo'
wp user list --fields=ID,user_login,user_email,roles

Droga druga, przez bazę. W phpMyAdmin otwórz tabelę wp_users, znajdź swoje konto i w polu user_pass wpisz nową wartość, wybierając z listy funkcję MD5. WordPress przyjmie takie hasło przy pierwszym logowaniu i sam zapisze je we własnym, mocniejszym formacie.

Dwie uwagi do tej metody. Prefiks tabel bywa inny niż wp_, więc szukaj nazwy kończącej się na users. I zaloguj się od razu po zmianie, żeby hasło zostało przeliczone, a nie zostało w bazie w słabej postaci.

Droga trzecia. Gdy nie ma żadnego konta administratora, nowe da się dodać poleceniem wp user create albo wpisem w tabelach użytkowników. To już praca, przy której łatwo popsuć uprawnienia, i tu zwykle zaczyna się rozmowa o pomocy z zewnątrz. Opisaliśmy ją osobno w tekście o odzyskiwaniu dostępów do strony.

„Nie masz wystarczających uprawnień"

Hasło przechodzi, panel się otwiera i zamiast pulpitu pojawia się ten komunikat. Konto istnieje, ale WordPress nie widzi jego roli.

Najczęstsza przyczyna jest nieoczywista: ktoś zmienił prefiks tabel, na przykład z wp_ na wp7x_, i poprawił nazwy tabel, ale nie poprawił wpisów w tabeli wp_usermeta. Uprawnienia są tam zapisane pod kluczami zawierającymi stary prefiks, więc dla nowej instalacji użytkownik nie ma żadnej roli.

Naprawa polega na zmianie nazw dwóch kluczy w tabeli metadanych użytkownika, ze starego prefiksu na nowy. To operacja na bazie, więc obowiązuje zasada z początku tekstu: najpierw kopia.

Panel działa, ale wszystko trwa wieki

Wolny panel przy sprawnej stronie ma zwykle jedną z trzech przyczyn: rozrośnięta tabela opcji z wpisami ładowanymi przy każdym żądaniu, wtyczka odpytująca zewnętrzny serwis przy każdym otwarciu pulpitu albo tabela zamówień w sklepie bez indeksów.

Prosty test: wyłącz wtyczki tak jak wyżej i sprawdź, czy panel przyspieszył. Jeśli tak, włączaj po jednej i mierz. Jeśli nie, problem leży po stronie serwera albo bazy. Wtedy pomaga mocniejszy hosting albo stała opieka techniczna, a nie kolejna wtyczka optymalizująca.

Gdy wejdziesz, zrób trzy rzeczy

  • Zmień adres e-mail administratora na taki, do którego masz dostęp. To on decyduje o resecie hasła i o wiadomościach z trybu odzyskiwania.
  • Sprawdź listę użytkowników. Konto administratora, którego nie znasz, założone niedawno, to sygnał ostrzegawczy. Więcej w tekście o audycie strony po poprzedniej agencji.
  • Włącz logowanie dwuetapowe i ogranicz liczbę prób. Adres /wp-login.php jest atakowany automatycznie na każdej stronie, niezależnie od jej wielkości.

Zmiana adresu logowania na własny bywa pomocna, ale zapisz go sobie poza stroną. Zapomniany własny adres panelu to kolejna godzina szukania.

Najczęstsze pytania

Jak wejść do panelu WordPressa?

Wpisz adres strony z dopiskiem /wp-admin, na przykład twojastrona.pl/wp-admin. Jeśli nie działa, spróbuj /wp-login.php. Gdy oba prowadzą donikąd, adres logowania mogła zmienić wtyczka zabezpieczająca.

Logowanie wraca do formularza i nie pokazuje błędu. Dlaczego?

To problem z ciasteczkami sesji, zwykle przy rozjeździe adresu z www i bez www. Wyczyść ciasteczka domeny, a jeśli to nie pomoże, wymuś adres stałymi WP_HOME i WP_SITEURL w pliku wp-config.php.

Jak zmienić hasło, gdy nie mam dostępu do poczty?

Najprościej poleceniem wp user update, jeśli hosting daje wiersz poleceń. Bez niego przez phpMyAdmin: w tabeli users wpisz nowe hasło z funkcją MD5 i zaloguj się od razu, żeby system zapisał je we własnym formacie.

Jak wyłączyć wtyczki bez dostępu do panelu?

Przez FTP albo menedżer plików zmień nazwę katalogu wp-content/plugins na dowolną inną. WordPress wyłączy wszystkie wtyczki, nie kasując ich. Po zalogowaniu przywróć nazwę i włączaj je pojedynczo.

Skąd bierze się komunikat o braku uprawnień?

Najczęściej ze zmiany prefiksu tabel bez poprawienia kluczy uprawnień w tabeli metadanych użytkowników. Konto istnieje, ale nie ma przypisanej roli.

Czy zmiana adresu logowania zwiększa bezpieczeństwo?

Ogranicza automatyczne próby logowania, ale nie zastępuje mocnego hasła i logowania dwuetapowego. Zapisz nowy adres poza stroną, bo jego odzyskanie wymaga dostępu do plików.

Co zrobić, gdy strona pokazuje błąd krytyczny?

Poszukaj wiadomości od WordPressa z odnośnikiem do trybu odzyskiwania. Jeśli nie dotarła, wyłącz wtyczki przez FTP, a gdy to nie pomoże, zmień nazwę katalogu aktywnego motywu.

Kiedy oddać to komuś?

Gdy trzeba ruszyć bazę, a nie ma aktualnej kopii, albo gdy na stronie pojawiły się konta i pliki, których nikt nie zakładał. W drugim przypadku samo odzyskanie hasła niczego nie załatwia.

Odzyskamy dostęp do Twojej strony