Jak naprawić wewnętrzny błąd serwera 500 w witrynie WordPress?

Opublikowany: 2017-12-25

Przerażający wewnętrzny błąd serwera 500. Zawsze wydaje się, że nadchodzi w najbardziej nieodpowiednim momencie i nagle zaczynasz się zastanawiać, jak przywrócić witrynę WordPress do trybu online. Zaufaj nam, wszyscy tam byliśmy. Inne błędy, które zachowują się podobnie, to przerażający błąd podczas nawiązywania połączenia z bazą danych i przerażający biały ekran śmierci. Ale od momentu awarii witryny tracisz odwiedzających i klientów. Nie wspominając o tym, że po prostu źle wygląda dla Twojej marki.

Dzisiaj zajmiemy się wewnętrznym błędem serwera 500 i przedstawimy kilka sposobów szybkiego przywrócenia witryny do trybu online. Przeczytaj więcej poniżej, co powoduje ten błąd i co możesz zrobić, aby temu zapobiec w przyszłości.

  • Co to jest wewnętrzny błąd serwera 500?
  • Jak naprawić wewnętrzny błąd serwera 500

Sprawdź nasz ostateczny przewodnik po naprawie wewnętrznego błędu serwera 500

Co to jest wewnętrzny błąd serwera 500?

Internet Engineering Task Force (IETF) definiuje wewnętrzny błąd serwera 500 jako:

Kod stanu 500 (wewnętrzny błąd serwera) wskazuje, że serwer napotkał nieoczekiwany stan, który uniemożliwił mu zrealizowanie żądania.

Gdy odwiedzasz witrynę, przeglądarka wysyła żądanie do serwera, na którym znajduje się witryna. Serwer przyjmuje to żądanie, przetwarza je i odsyła żądane zasoby (PHP, HTML, CSS itp.) wraz z nagłówkiem HTTP. HTTP zawiera również to, co nazywają kodem stanu HTTP. Kod statusu to sposób na powiadomienie Cię o statusie żądania. Może to być kod stanu 200, co oznacza „Wszystko jest w porządku” lub kod stanu 500, co oznacza, że ​​coś poszło nie tak.

Istnieje wiele różnych typów kodów błędów 500 statusu (500, 501, 502, 503, 504 itd.) i każdy z nich oznacza coś innego. W takim przypadku wewnętrzny błąd serwera 500 wskazuje, że serwer napotkał nieoczekiwany stan, który uniemożliwił mu zrealizowanie żądania (RFC 7231, sekcja 6.6.1).

500 wewnętrzny błąd serwera w WordPress
500 wewnętrzny błąd serwera w WordPress

500 odmian błędów wewnętrznego serwera

Ze względu na różne serwery internetowe, systemy operacyjne i przeglądarki wewnętrzny błąd serwera 500 może objawiać się na wiele różnych sposobów. Ale wszyscy komunikują to samo. Poniżej znajduje się tylko kilka z wielu różnych odmian, które możesz zobaczyć w Internecie:

    • "500 wewnętrzny błąd serwera"
    • „HTTP 500”
    • "Wewnętrzny błąd serwera"
    • „HTTP 500 — wewnętrzny błąd serwera”
    • „Błąd 500”
    • „Błąd HTTP 500”
    • "500 wewnętrzny błąd serwera"
    • "500 wewnętrzny błąd serwera. Przepraszam, coś poszło nie tak."
    • „500. To jest błąd. Wystąpił błąd. Spróbuj ponownie później. To wszystko co wiemy."
    • „Witryna nie może wyświetlić strony – HTTP 500.”
    • „Obecnie nie jest w stanie obsłużyć tego żądania. BŁĄD HTTP 500.”

Możesz również zobaczyć tę wiadomość towarzyszącą temu:

Serwer napotkał błąd wewnętrzny lub nieprawidłową konfigurację i nie mógł zrealizować żądania. Skontaktuj się z administratorem serwera, [chroniony adres e-mail] i poinformuj go o czasie wystąpienia błędu oraz o wszystkim, co mogło spowodować błąd. Więcej informacji o tym błędzie może być dostępnych w dzienniku błędów serwera.

Internal Server Error
Wewnętrzny błąd serwera

Innym razem możesz po prostu zobaczyć pusty biały ekran. W przypadku 500 wewnętrznych błędów serwera jest to dość powszechne w przeglądarkach takich jak Firefox i Safari.

Wewnętrzny błąd serwera 500 w Firefoksie
Wewnętrzny błąd serwera 500 w Firefoksie

Większe marki mogą nawet mieć własne niestandardowe wewnętrzne komunikaty o błędach serwera 500, takie jak ten z Airbnb.

Wewnętrzny błąd serwera Airbnb 500
Wewnętrzny błąd serwera Airbnb 500

Oto kolejny przykład błędu serwera Creative 500 od osób z readme.

readme 500 internal server error
readme 500 wewnętrzny błąd serwera

Nawet potężny YouTube nie jest bezpieczny przed 500 wewnętrznymi błędami serwera.

500 wewnętrzny błąd serwera na YouTube
500 wewnętrzny błąd serwera na YouTube

Jeśli jest to serwer IIS 7.0 (Windows) lub nowszy, mają dodatkowe kody stanu HTTP, aby dokładniej wskazać przyczynę błędu 500:

  • 500.0 — Wystąpił błąd modułu lub ISAPI.
  • 500.11 – Aplikacja jest zamykana na serwerze WWW.
  • 500.12 – Aplikacja jest zajęta restartowaniem na serwerze WWW.
  • 500.13 – Serwer sieciowy jest zbyt zajęty.
  • 500.15 – Bezpośrednie żądania global.asax są niedozwolone.
  • 500.19 – Dane konfiguracyjne są nieprawidłowe.
  • 500.21 – Moduł nie został rozpoznany.
  • 500.22 — Konfiguracja httpModules ASP.NET nie ma zastosowania w trybie zarządzanego potoku.
  • 500.23 — konfiguracja ASP.NET httpHandlers nie ma zastosowania w trybie zarządzanego potoku.
  • 500.24 — Konfiguracja personifikacji ASP.NET nie ma zastosowania w trybie zarządzanego potoku.
  • 500.50 — Wystąpił błąd ponownego zapisu podczas obsługi powiadomienia RQ_BEGIN_REQUEST. Wystąpił błąd konfiguracji lub wykonania reguły ruchu przychodzącego.
  • 500.51 — Wystąpił błąd ponownego zapisu podczas obsługi powiadomień GL_PRE_BEGIN_REQUEST. Wystąpił błąd konfiguracji globalnej lub wykonania reguły globalnej.
  • 500.52 — Wystąpił błąd ponownego zapisu podczas obsługi powiadomienia RQ_SEND_RESPONSE. Wystąpiło wykonanie reguły ruchu wychodzącego.
  • 500.53 — Wystąpił błąd ponownego zapisu podczas obsługi powiadomienia RQ_RELEASE_REQUEST_STATE. Wystąpił błąd wykonania reguły ruchu wychodzącego. Reguła jest skonfigurowana do wykonania przed aktualizacją wyjściowej pamięci podręcznej użytkownika.
    500.100 — Wewnętrzny błąd ASP.

500 błędów wpływa na SEO

W przeciwieństwie do błędów 503, które są używane w trybie konserwacji WordPress i informują Google, aby sprawdził ponownie w późniejszym czasie, błąd 500 może mieć negatywny wpływ na SEO, jeśli nie zostanie naprawiony od razu. Jeśli Twoja witryna nie działa tylko przez, powiedzmy, 10 minut, i jest stale indeksowana, robot indeksujący po prostu pobiera stronę z pamięci podręcznej. Lub Google może nie mieć nawet szansy na ponowne zindeksowanie go przed utworzeniem kopii zapasowej. W tym scenariuszu wszystko w porządku.

Jeśli jednak witryna jest niedostępna przez dłuższy czas, powiedzmy 6+ godzin, Google może uznać błąd 500 jako problem na poziomie witryny, który należy rozwiązać. Może to wpłynąć na Twoje rankingi . Jeśli martwisz się powtórzeniem 500 błędów, powinieneś dowiedzieć się, dlaczego tak się dzieje. Niektóre z poniższych rozwiązań mogą pomóc.

Jak naprawić wewnętrzny błąd serwera 500

Od czego zacząć rozwiązywanie problemów, gdy zobaczysz wewnętrzny błąd serwera 500 w swojej witrynie WordPress? Czasami możesz nawet nie wiedzieć, od czego zacząć. Zazwyczaj na samym serwerze znajduje się 500 błędów, ale z naszego doświadczenia wynika, że ​​błędy te wynikają z dwóch rzeczy, pierwsza to błąd użytkownika (problem po stronie klienta), a druga to problem z serwerem . Więc zagłębimy się po trochu w jedno i drugie.

Zapoznaj się z tymi typowymi przyczynami i sposobami naprawienia wewnętrznego błędu serwera 500 i błyskawicznie przywróć działanie.

1. Spróbuj ponownie załadować stronę

Dla niektórych może się to wydawać trochę oczywiste, ale jedną z najłatwiejszych i pierwszych rzeczy, które powinieneś spróbować w przypadku napotkania wewnętrznego błędu serwera 500, jest po prostu odczekanie około minuty i ponowne załadowanie strony (F5 lub Ctrl + F5). Może się zdarzyć, że host lub serwer jest po prostu przeciążony, a witryna natychmiast wróci. Podczas oczekiwania możesz też szybko wypróbować inną przeglądarkę, aby wykluczyć to jako problem.

Inną rzeczą, którą możesz zrobić, to wkleić witrynę do downforeveryoneorjustme.com. Ta witryna poinformuje Cię, czy witryna nie działa lub jest to problem po Twojej stronie. Narzędzie takie jak to sprawdza kod stanu HTTP, który jest zwracany z serwera. Jeśli jest to coś innego niż 200 „Wszystko jest w porządku”, zwróci wskaźnik w dół.

downforeveryoneorjustme
w dółdlawszystkichlubtylko dla mnie

Zauważyliśmy również, że czasami może to nastąpić natychmiast po zaktualizowaniu wtyczki lub motywu w witrynie WordPress. Zwykle dzieje się tak na hostach, które nie są poprawnie skonfigurowane. Dzieje się tak, że zaraz potem doświadczają tymczasowego limitu czasu. Jednak problemy zwykle rozwiązują się w ciągu kilku sekund i dlatego wystarczy odświeżenie.

2. Wyczyść pamięć podręczną przeglądarki

Wyczyszczenie pamięci podręcznej przeglądarki jest zawsze kolejnym dobrym krokiem do rozwiązania problemu przed przystąpieniem do głębszego debugowania w witrynie. Poniżej znajdują się instrukcje, jak wyczyścić pamięć podręczną w różnych przeglądarkach:

  • Jak wymusić odświeżenie pojedynczej strony dla wszystkich przeglądarek
  • Jak wyczyścić pamięć podręczną przeglądarki dla Google Chrome
  • Jak wyczyścić pamięć podręczną przeglądarki dla Mozilla Firefox
  • Jak wyczyścić pamięć podręczną przeglądarki Safari
  • Jak wyczyścić pamięć podręczną przeglądarki Internet Explorer
  • Jak wyczyścić pamięć podręczną przeglądarki dla Microsoft Edge
  • Jak wyczyścić pamięć podręczną przeglądarki dla Opery?

3. Sprawdź swoje dzienniki serwera

Powinieneś także skorzystać z dzienników błędów. Jeśli jesteś klientem Kinsta, możesz łatwo zobaczyć błędy w przeglądarce dziennika na pulpicie nawigacyjnym MyKinsta. Pomoże to szybko zawęzić problem, zwłaszcza jeśli wynika on z wtyczki w Twojej witrynie.

Sprawdź dzienniki błędów pod kątem 500 wewnętrznych błędów serwera
Sprawdź dzienniki błędów pod kątem 500 wewnętrznych błędów serwera

Jeśli Twój host nie ma narzędzia do rejestrowania, możesz również włączyć tryb debugowania WordPress, dodając następujący kod do pliku wp-config.php, aby włączyć rejestrowanie:

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

Dzienniki zazwyczaj znajdują się w katalogu /wp-content. Inne, takie jak tutaj w Kinsta, mogą mieć dedykowany folder o nazwie „dzienniki”.

WordPress error logs folder (SFTP)
Folder dzienników błędów WordPress (SFTP)

Możesz także sprawdzić pliki dziennika w Apache i Nginx, które zwykle znajdują się tutaj:

  • Apache: /var/log/apache2/error.log
  • Nginx: /var/log/nginx/error.log

Jeśli jesteś klientem Kinsta, możesz również skorzystać z naszego narzędzia analitycznego, aby uzyskać zestawienie łącznej liczby 500 błędów i zobaczyć, jak często i kiedy występują. Może to pomóc w rozwiązaniu problemu, jeśli jest to stały problem, a może coś, co samo się rozwiązało.

Analiza odpowiedzi 500 podział błędów
Analiza odpowiedzi 500 podział błędów

Łatwo identyfikuj i usuwaj błędy w przeglądarce dzienników potężnego, scentralizowanego pulpitu nawigacyjnego MyKinsta. Wypróbuj Kinsta za darmo.

Jeśli błąd 500 jest wyświetlany z powodu krytycznego błędu PHP, możesz również spróbować włączyć raportowanie błędów PHP. Po prostu dodaj następujący kod do pliku zgłaszającego błąd. Zazwyczaj możesz zawęzić plik na karcie konsoli Google Chrome DevTools.

 ini_set('display_errors', 1); ini_set('display_startup_errors', 1); error_reporting(E_ALL);

I może być konieczne zmodyfikowanie pliku php.ini w następujący sposób:

 display_errors = on

4. Błąd podczas nawiązywania połączenia z bazą danych

500 wewnętrznych błędów serwera może również wystąpić z powodu błędu połączenia z bazą danych. W zależności od przeglądarki możesz zobaczyć różne błędy. Ale oba wygenerują kod stanu 500 HTTP niezależnie od dzienników serwera.

Poniżej znajduje się przykład tego, jak komunikat „błąd podczas nawiązywania połączenia z bazą danych” wygląda w Twojej przeglądarce. Cała strona jest pusta, ponieważ nie można pobrać danych do renderowania strony, ponieważ połączenie nie działa prawidłowo. To nie tylko łamie front-end Twojej witryny, ale także uniemożliwia dostęp do pulpitu WordPress.

Example of error establishing a database connection
Przykład błędu podczas nawiązywania połączenia z bazą danych

Dlaczego dokładnie tak się dzieje? Oto kilka typowych powodów poniżej.

  • Najczęstszym problemem jest to, że poświadczenia logowania do bazy danych są nieprawidłowe . Twoja witryna WordPress używa oddzielnych danych logowania, aby połączyć się z bazą danych MySQL.
  • Twoja baza danych WordPress jest uszkodzona. Przy tak wielu ruchomych częściach z motywami, wtyczkami i użytkownikami, które stale je usuwają i instalują, czasami bazy danych ulegają uszkodzeniu. Może to być spowodowane brakiem lub pojedynczo uszkodzoną tabelą lub być może niektóre informacje zostały przypadkowo usunięte.
  • Możesz mieć uszkodzone pliki w swojej instalacji WordPress. Czasami może się to zdarzyć nawet z powodu hakerów.
  • Problemy z serwerem bazy danych. Wiele rzeczy może być nie tak po stronie hostów internetowych, na przykład baza danych jest przeciążona z powodu gwałtownego wzrostu ruchu lub nie odpowiada na zbyt wiele jednoczesnych połączeń. W rzeczywistości jest to dość powszechne w przypadku hostów współdzielonych, ponieważ wykorzystują one te same zasoby dla wielu użytkowników na tych samych serwerach.

Sprawdź nasz szczegółowy post, jak naprawić błąd podczas nawiązywania połączenia z bazą danych w WordPressie.

5. Sprawdź swoje wtyczki i motywy

Wtyczki i motywy innych firm mogą łatwo spowodować 500 wewnętrznych błędów serwera. Widzieliśmy, że wszystkie typy powodują je tutaj w Kinsta , od wtyczek do suwaków po wtyczki do rotacji reklam. Wiele razy powinieneś zobaczyć błąd natychmiast po zainstalowaniu czegoś nowego lub uruchomieniu aktualizacji. Jest to jeden z powodów, dla których zawsze zalecamy korzystanie ze środowiska testowego do aktualizacji lub przynajmniej uruchamianie aktualizacji pojedynczo. W przeciwnym razie, jeśli napotkasz wewnętrzny błąd serwera 500, nagle zaczniesz się zastanawiać, który z nich go spowodował.

Kilka sposobów na rozwiązanie tego problemu to dezaktywacja wszystkich wtyczek. Pamiętaj, że nie stracisz żadnych danych, jeśli po prostu dezaktywujesz wtyczkę. Jeśli nadal możesz uzyskać dostęp do swojego administratora, szybkim sposobem na to jest przejście do „Wtyczki” i wybranie „Dezaktywuj” z menu działań zbiorczych. Spowoduje to wyłączenie wszystkich twoich wtyczek.

Dezaktywuj wszystkie wtyczki
Dezaktywuj wszystkie wtyczki

Jeśli to rozwiąże problem, musisz znaleźć winowajcę. Zacznij je aktywować jeden po drugim, przeładowując stronę po każdej aktywacji. Gdy zobaczysz powrót wewnętrznego błędu serwera 500, znalazłeś nieprawidłowo działającą wtyczkę. Następnie możesz skontaktować się z twórcą wtyczki w celu uzyskania pomocy lub opublikować zgłoszenie do pomocy technicznej w repozytorium WordPress.

Jeśli nie możesz zalogować się do administratora WordPressa, możesz przesłać FTP na swój serwer i zmienić nazwę folderu wtyczek na coś w rodzaju plugins_old. Następnie ponownie sprawdź swoją witrynę. Jeśli to zadziała, będziesz musiał przetestować każdą wtyczkę pojedynczo. Zmień nazwę folderu wtyczek z powrotem na „wtyczki”, a następnie zmień nazwę każdego folderu wtyczek w środku, jeden po drugim, aż go znajdziesz. Możesz również spróbować najpierw odtworzyć to w witrynie tymczasowej.

Rename plugin folder
Zmień nazwę folderu wtyczek

Zawsze upewnij się, że Twoje wtyczki, motywy i rdzeń WordPress są aktualne. Sprawdź, czy korzystasz z obsługiwanej wersji PHP. Jeśli okaże się, że jest to konflikt ze złym kodem we wtyczce, być może trzeba będzie sprowadzić programistę WordPress, aby rozwiązać problem.

6. Zainstaluj ponownie rdzeń WordPress

Czasami podstawowe pliki WordPressa mogą ulec uszkodzeniu, zwłaszcza w starszych witrynach. W rzeczywistości dość łatwo jest ponownie przesłać sam rdzeń WordPressa bez wpływu na wtyczki lub motywy. Mamy szczegółowy przewodnik z 5 różnymi sposobami ponownej instalacji WordPressa. I oczywiście upewnij się, że wykonałeś kopię zapasową przed kontynuowaniem. Przejdź do jednej z poniższych sekcji:

  • Jak ponownie zainstalować WordPress z pulpitu WordPress, zachowując istniejącą zawartość?
  • Jak ręcznie ponownie zainstalować WordPress przez FTP, zachowując istniejącą zawartość?
  • Jak ręcznie ponownie zainstalować WordPress za pomocą WP-CLI, zachowując istniejącą zawartość?

7. Błąd uprawnień

Błąd uprawnień dotyczący pliku lub folderu na serwerze może również spowodować wystąpienie wewnętrznego błędu serwera 500. Oto kilka typowych zaleceń dotyczących uprawnień, jeśli chodzi o uprawnienia do plików i folderów w WordPress:

  • Wszystkie pliki powinny mieć 644 (-rw-r–r–) lub 640.
  • Wszystkie katalogi powinny mieć numer 755 (drwxr-xr-x) lub 750.
  • Żaden katalog nigdy nie powinien mieć 777, nawet katalogów uploadu.
  • Utwardzanie: wp-config.php można również ustawić na 440 lub 400, aby uniemożliwić innym użytkownikom na serwerze odczytanie go.

Zobacz artykuł WordPress Codex na temat zmiany uprawnień do plików, aby uzyskać bardziej szczegółowe wyjaśnienie.

Możesz łatwo sprawdzić swoje uprawnienia do plików za pomocą klienta FTP (jak pokazano poniżej). Możesz również skontaktować się z zespołem pomocy technicznej hosta WordPress i poprosić go o szybkie przyznanie uprawnień do plików GREP w Twoich folderach i plikach, aby upewnić się, że są prawidłowo skonfigurowane.

Uprawnienia do plików SFTP
Uprawnienia do plików SFTP

8. Limit pamięci PHP

Wewnętrzny błąd serwera 500 może być również spowodowany wyczerpaniem limitu pamięci PHP na serwerze. Możesz spróbować zwiększyć limit. Postępuj zgodnie z poniższymi instrukcjami, jak zmienić ten limit w cPanel, Apache, pliku php.ini i pliku wp-config.php .

Zwiększ limit pamięci PHP w cPanel

Jeśli korzystasz z hosta, który używa cPanel, możesz to łatwo zmienić w interfejsie użytkownika. W sekcji Oprogramowanie kliknij „Wybierz wersję PHP”.

Wybierz wersję PHP
Wybierz wersję PHP

Kliknij „Przełącz na opcje PHP”.

Przełącz na opcje PHP
Przełącz na opcje PHP

Następnie możesz kliknąć atrybut memory_limit i zmienić jego wartość. Następnie kliknij „Zapisz”.

Zwiększ limit pamięci PHP w cPanel
Zwiększ limit pamięci PHP w cPanel

Zwiększ limit pamięci PHP w Apache

Plik .htaccess to specjalny ukryty plik, który zawiera różne ustawienia, których można użyć do modyfikacji zachowania serwera, aż do poziomu określonego katalogu. Najpierw zaloguj się do swojej witryny przez FTP lub SSH, spójrz na swój katalog główny i sprawdź, czy nie ma tam pliku .htaccess .

.htaccess file
plik .htaccess

Jeśli tak, możesz edytować ten plik, aby dodać niezbędny kod do zwiększenia limitu pamięci PHP. Najprawdopodobniej jest ustawiony na 64M lub mniej, możesz spróbować zwiększyć tę wartość.

 php_value memory_limit 128M

Zwiększ limit pamięci PHP w pliku php.ini

Jeśli powyższe nie działa, możesz spróbować edytować plik php.ini . Zaloguj się do swojej witryny przez FTP lub SSH, przejdź do katalogu głównego witryny i otwórz lub utwórz plik php.ini .

php.ini file
plik php.ini

Jeśli plik już tam był, wyszukaj trzy ustawienia i zmodyfikuj je w razie potrzeby. Jeśli właśnie utworzyłeś plik lub nigdzie nie można znaleźć ustawień, możesz wkleić poniższy kod. Możesz oczywiście modyfikować wartości do swoich potrzeb.

 memory_limit = 128M

Niektóre współdzielone hosty mogą również wymagać dodania dyrektywy suPHP w pliku .htaccess , aby powyższe ustawienia pliku php.ini działały. Aby to zrobić, edytuj plik .htaccess , również znajdujący się w katalogu głównym witryny, i dodaj następujący kod w górnej części pliku:

 <IfModule mod_suphp.c> suPHP_ConfigPath /home/yourusername/public_html </IfModule>

Jeśli powyższe nie zadziałało, możliwe, że twój host ma zablokowane ustawienia globalne i zamiast tego skonfigurował go do korzystania z plików .user.ini . Aby edytować plik .user.ini , zaloguj się do swojej witryny przez FTP lub SSH, przejdź do katalogu głównego witryny i otwórz lub utwórz plik .user.ini . Następnie możesz wkleić następujący kod:

 memory_limit = 128M

Zwiększ limit pamięci PHP w wp-config.php

Ostatnia opcja nie jest tą, której jesteśmy fanami, ale jeśli wszystko inne zawiedzie, możesz spróbować. Najpierw zaloguj się do swojej witryny przez FTP lub SSH i zlokalizuj plik wp-config.php, który zwykle znajduje się w katalogu głównym witryny.

wp-config.php file
plik wp-config.php

Dodaj następujący kod na początku pliku wp-config.php :

 define('WP_MEMORY_LIMIT', '128M');

Możesz również zapytać swojego hosta, czy masz problemy z limitem pamięci. Korzystamy z narzędzia Kinsta APM i innych metod rozwiązywania problemów w Kinsta, aby pomóc klientom określić, która wtyczka, zapytanie lub skrypt może wyczerpać limit. Możesz także użyć własnego niestandardowego klucza New Relic z własnej licencji.

Debugowanie z New Relic
Debugowanie z New Relic

9. Problem z plikiem .htaccess

Kinsta używa tylko Nginx, ale jeśli używasz hosta WordPress, na którym działa Apache, może być tak, że Twój plik .htaccess ma problem lub został uszkodzony. Wykonaj poniższe czynności, aby odtworzyć nowy od podstaw.

Najpierw zaloguj się do swojej witryny przez FTP lub SSH i zmień nazwę pliku .htaccess na .htaccess_old .

Zmień nazwę pliku .htaccess
Zmień nazwę pliku .htaccess

Zwykle, aby odtworzyć ten plik, możesz po prostu ponownie zapisać swoje permalinki w WordPress. Jeśli jednak znajdujesz się w środku wewnętrznego błędu serwera 500, najprawdopodobniej nie możesz uzyskać dostępu do administratora WordPress, więc nie jest to możliwe. Dlatego możesz utworzyć nowy plik .htaccess i wprowadzić następującą zawartość. Następnie prześlij go na swój serwer.

 # BEGIN WordPress <IfModule mod_rewrite.c> RewriteEngine On RewriteBase / RewriteRule ^index\.php$ - [L] RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule . /index.php [L] </IfModule> # END WordPress

Zobacz Kodeks WordPress, aby uzyskać więcej przykładów, takich jak domyślny plik .htaccess dla wielu witryn.

10. Błędy w kodowaniu lub składni w skrypcie CGI/Perl

500 błędów spowodowanych przez błędy w CGI i Perlu jest znacznie mniej powszechne niż kiedyś. Chociaż nadal warto o tym wspomnieć, szczególnie dla tych, którzy używają cPanel, gdzie wciąż jest używanych wiele skryptów CGI za jednym kliknięciem. Jak mówi AEM na Stack Overflow:

CGI zostało zastąpione przez szeroką gamę technologii programowania internetowego, w tym PHP, różne rozszerzenia Apache, takie jak mod_perl, Java o różnych smakach i frameworkach, w tym Java EE, Struts, Spring itp., frameworki oparte na Pythonie, takie jak Django, Ruby on Rails i wiele inne frameworki Ruby i różne technologie Microsoft.

Oto kilka wskazówek dotyczących pracy ze skryptami CGI:

  • Podczas edycji zawsze używaj zwykłego edytora tekstu, takiego jak Atom, Sublime lub Notepad++. Zapewnia to, że pozostaną w formacie ASCII.
  • Upewnij się, że w skryptach i katalogach CGI są używane poprawne uprawnienia chmod 755.
  • Prześlij swoje skrypty CGI w trybie ASCII (który możesz wybrać w edytorze FTP) do katalogu cgi-bin na serwerze.
  • Upewnij się, że moduły Perla wymagane dla twojego skryptu są zainstalowane i obsługiwane.

Łatwo identyfikuj i usuwaj błędy w przeglądarce dzienników potężnego, scentralizowanego pulpitu nawigacyjnego MyKinsta. Wypróbuj Kinsta za darmo.

11. Problem z serwerem (sprawdź u swojego hosta)

Wreszcie, ponieważ 500 wewnętrznych błędów serwera może również wystąpić z powodu przekroczenia limitu czasu PHP lub krytycznych błędów PHP związanych z wtyczkami innych firm , zawsze możesz skontaktować się z hostem WordPress. Czasami te błędy mogą być trudne do rozwiązania bez eksperta. Oto tylko kilka typowych przykładów niektórych błędów, które wyzwalają 500 kodów stanu HTTP na serwerze, które mogą sprawić, że będziesz drapać się po głowie.

 PHP message: PHP Fatal error: Uncaught Error: Call to undefined function mysql_error()...
 PHP message: PHP Fatal error: Uncaught Error: Cannot use object of type WP_Error as array in /www/folder/web/shared/content/plugins/plugin/functions.php:525

Monitorujemy wszystkie witryny klientów w Kinsta i jesteśmy automatycznie powiadamiani, gdy wystąpią tego typu błędy . To pozwala nam działać proaktywnie i od razu zacząć naprawiać problem. Korzystamy również z hostów zarządzanych LXD i zorganizowanych kontenerów oprogramowania LXC dla każdej witryny. Oznacza to, że każda witryna WordPress znajduje się we własnym izolowanym kontenerze, który zawiera wszystkie zasoby oprogramowania wymagane do jej uruchomienia (Linux, Nginx, PHP, MySQL). Zasoby są w 100% prywatne i nie są udostępniane nikomu ani nawet Twoim własnym witrynom.

Limity czasu PHP mogą również wynikać z braku pracowników PHP , chociaż zazwyczaj powodują one błędy 504, a nie 500. Określają one, ile jednoczesnych żądań Twoja witryna może obsłużyć w danym czasie. Mówiąc prościej, każde niebuforowane żądanie dla Twojej witryny jest obsługiwane przez PHP Worker.

Kiedy pracownicy PHP są już zajęci w witrynie, zaczynają tworzyć kolejkę. Po osiągnięciu limitu pracowników PHP kolejka zaczyna wysyłać starsze żądania, co może skutkować błędami 500 lub niekompletnymi żądaniami. Przeczytaj nasz szczegółowy artykuł o pracownikach PHP.

Monitoruj swoją witrynę

Jeśli martwisz się, że tego typu błędy wystąpią w Twojej witrynie w przyszłości, możesz również użyć narzędzia takiego jak updown.io do monitorowania i natychmiastowego powiadamiania o ich wystąpieniu. Okresowo wysyła żądanie HTTP HEAD na wybrany adres URL. Możesz po prostu użyć swojej strony głównej. Narzędzie umożliwia ustawienie częstotliwości sprawdzania:

  • 15 sekund
  • 30 sekund
  • 1 minuta
  • 2 minuty
  • 5 minut
  • 10 minut

Wyśle Ci wiadomość e-mail, jeśli i kiedy Twoja witryna ulegnie awarii. Oto przykład poniżej.

Powiadomienie e-mail o błędzie 500
Powiadomienie e-mail o błędzie 500

Może to być szczególnie przydatne, jeśli próbujesz debugować wadliwą wtyczkę lub znajdujesz się na współdzielonym hoście, który ma tendencję do przepełniania swoich serwerów. Może to dać Ci dowód na to, jak często Twoja witryna może faktycznie przestać działać (nawet w środku nocy). Dlatego zawsze zalecamy korzystanie z zarządzanego hosta WordPress. Zapoznaj się z naszym postem, w którym omówiono 9 najważniejszych powodów, dla których warto wybrać zarządzany hosting WordPress.

Streszczenie

500 wewnętrznych błędów serwera zawsze jest frustrujących, ale miejmy nadzieję, że teraz znasz kilka dodatkowych sposobów ich rozwiązywania, aby szybko przywrócić i uruchomić witrynę. Pamiętaj, że zazwyczaj tego typu błędy są powodowane przez wtyczki innych firm, krytyczne błędy PHP, problemy z połączeniem z bazą danych, problemy z plikiem .htaccess lub limitami pamięci PHP, a czasami z przekroczeniem limitu czasu PHP.

Czy było coś, co przegapiliśmy? Być może masz kolejną wskazówkę dotyczącą rozwiązywania 500 wewnętrznych błędów serwera. Jeśli tak, daj nam znać poniżej w komentarzach.