Oceń ten artykuł :
2,5/5 | 2 opinia
Ten artykuł był dla Ciebie przydatny ?
Tak
Nie
Vous avez noté 0 étoile(s)
Sommaire
Procédure
Gdy próbujesz odwiedzić stronę internetową i widzisz komunikat o błędzie "500 Internal Server Error", oznacza to, że coś poszło nie tak z witryną. Błąd ten może być szczególnie frustrujący, ponieważ może nie dawać żadnych informacji o konkretnej przyczynie błędu. Ten artykuł pokazuje, jak debugować błąd 500 na swojej stronie internetowej.
Pusta strona niekoniecznie oznacza błąd 500 i odwrotnie. Błąd 500 oznacza, że wystąpił błąd podczas przetwarzania żądania HTTP. Może to być błąd w wykonywaniu powiązanego skryptu, problem z dostępem do zasobu itp., który powoduje, że serwer WWW zwraca odpowiedź z kodem błędu 500. Z drugiej strony, pusta strona oznacza, że serwer WWW nie zwrócił żadnych treści w odpowiedzi lub nawet nie zwrócił żadnej odpowiedzi.
W niektórych sytuacjach błąd 500 oznacza, że serwer WWW nie ma żadnej odpowiedzi i dlatego powoduje pustą stronę. Dzieje się tak prawdopodobnie w przypadku, gdy nie skonfigurowano żadnej strony błędu 500, lub jeśli wyjście błędu zostało wyłączone, a więc witryna nie ma komunikatu o błędzie.
Niektóre przeglądarki, takie jak Chrome i Internet Explorer, wyświetlają własną stronę błędu 500, gdy otrzymają kod błędu nagłówka HTTP bez dostarczenia przez serwer jakiejkolwiek treści w treści odpowiedzi:

Błędy 500 są często związane z problemem z jednym z plików .htaccess działających na adres URL lub błędem PHP. Tak więc, aktywując wyświetlanie błędów za pomocą opcji php.ini display_errors, powinieneś zobaczyć błędy PHP zamiast błędu 500.

Aby ustalić, czy wystąpił błąd 500, należy sprawdzić kod błędu HTTP zwracany przez serwer WWW do przeglądarki internetowej. Można go zidentyfikować za pomocą karty "Sieć" w konsoli programisty przeglądarki:

Pierwszą rzeczą do zrobienia jest sprawdzenie plików dziennika powiązanych z żądaniem HTTP: pliku dziennika Apache i pliku dziennika PHP. Ostatnie 300 zdarzeń dotyczących użytkownika w pliku dziennika Apache można sprawdzić za pomocą ikony "Błędy" w interfejsie cPanel, podczas gdy plik dziennika PHP to zazwyczaj plik "error_log" widoczny obok danego pliku PHP:

Możliwe jest jednak, że błędy nie są wyświetlane w dziennikach. Może to być wynikiem konfiguracji, która uniemożliwia wyświetlanie i/lub rejestrowanie błędów PHP. Dowiedz się więcej.
Jeśli jednak korzystasz z WordPress, Prestashop lub Joomla, jest całkiem możliwe, że żadne zmiany nie będą widoczne. W takim przypadku należyaktywować wyświetlanie błędów w odpowiednich plikach konfiguracyjnych.
Większość systemów CMS, takich jak WordPress, posiada wewnętrzny system obsługi błędów, który uniemożliwia przetwarzanie parametrów PHP i podejmowanie działań w zależności od napotkanego błędu. Aktywując tryb debugowania, prosisz ten wewnętrzny system zarządzania błędami o wyświetlanie błędów i/lub zwiększenie szczegółowości plików dziennika.
Aby aktywować tryb debugowania, możesz połączyć się bezpośrednio z"Menedżerem plików" dostępnym z interfejsu cPanel i edytować powiązany plik konfiguracyjny, aby aktywować ten tryb.
Jeśli Twoja witryna została utworzona za pomocą WordPressa, możesz aktywować tryb deb ugowania z pliku"wp-config.php" znajdującego się w katalogu głównym Twojego hostingu. Aby to zrobić, wystarczy zmienić stałą"WP_DEBUG" na"true" zamiast"false".
Jeśli chcesz, możesz również dodać stałą WP_DEBUG_LOG, aby rejestrować błędy w pliku"wp-content/debug.log".
Należy również sprawdzić, czy stała"WP_DEBUG_DISPLAY" nie jest zdefiniowana w pliku konfiguracyjnym. Jeśli tak, należy również ustawić tę wartość na true.
Plik konfiguracyjny powinien wyglądać następująco:

W Prestashop można aktywować tryb deb ugowania, przechodząc do pliku"define.inc.php" w folderze"config".
Będziesz musiał zmienić instrukcję "_PS_MOD_DEV_" na"true" zamiast"false". W razie potrzeby można również aktywować tryb"_PS_DEBUG_PROFILING_", który dostarczy więcej informacji.
Plik konfiguracyjny powinien wyglądać następująco:

W przypadku Joomla można aktywować tryb debugowania poprzez edycję pliku configuration.php. W tym pliku należy zmienić zmienną"$debug" na 1, aby go aktywować. Należy również zmienić zmienną $error_reporting na"maximum", aby wyświetlane były wszystkie błędy.
Plik konfiguracyjny powinien wyglądać następująco:

Całkiem możliwe, że korzystasz z innego systemu CMS. Aby dowiedzieć się, jak aktyw ować tryb debugowania, możesz również wpisać w wyszukiwarce"nazwa CMS + Debug". Powinno to przenieść Cię bezpośrednio do samouczka wyjaśniającego, jak aktywować ten tryb.
Stosunkowo łatwo jest zrozumieć pochodzenie błędu 500, ponieważ bardzo często powtarzają się te same błędy.
1. Pierwszym i najczęstszym błędem jest"Parse error". Często wskazuje on na problem ze składnią (błąd w programowaniu kodu). Błąd jest definiowany w następujący sposób:
Jeśli weźmiemy przykład pliku index.php na naszej stronie Wordpress, w którym brakuje średnika na końcu linii 17, plik internetowy, w którym znajduje się błąd, jest następujący:

Błąd widoczny po przejściu do adresu URL będzie następujący:

2. Błąd"Parse error: syntax error, unexpected end of file" wskazuje, że czegoś brakuje na końcu pliku.

Na przykład w tym kodzie brakuje nawiasu klamrowego zamykającego instrukcję if.
3. Błąd parsowania: błąd składni, nieoczekiwany (T_STRING), oczekiwanie ", "lub"; " jest często spowodowany błędem związanym ze znakiem cudzysłowu w kodzie.

W tym kodzie brakuje odwrotnego ukośnika na słowie"błąd", tak jak w poniższym kodzie, aby działał:

4. Możesz również zobaczyć błąd typu"Fatal Error". Jest to jeden z najpoważniejszych błędów, jakie można napotkać. Powoduje on również zatrzymanie skryptu. Jest on zdefiniowany w następujący sposób:
Ten błąd często wskazuje, że funkcja nie została zdefiniowana, jak w poniższym kodzie:

Zobaczysz zatem następujący błąd: Fatal Error: Uncaught Error: Call to undefined function (Błąd krytyczny: Wywołanie niezdefiniowanej funkcji ).
Ten błąd jest często spowodowany jednym z poniższych:
5. Całkiem możliwe, że pojawi się błąd"Fatal Error: cannot redeclare" wskazujący, że funkcja została zdefiniowana po raz drugi. Kod może wyglądać następująco:

Całkiem możliwe jest uniknięcie tego błędu poprzez:
6. Może pojawić się błąd"Fatal Error: allowed memory size exhausted".
Oznacza to, że skrypt PHP wykorzystuje zbyt dużo pamięci RAM i przekracza maksymalną wartość dozwoloną w PHP.INI. Jest to wartość "memory_limit". Wartość tę można zmienić w formułach cPanel. Jeśli pomimo zwiększenia wartości do wystarczająco wysokiego poziomu, problem nadal występuje, może to oznaczać, że operacja zużywająca dużo pamięci jest powtarzana zbyt często (lub nawet w nieskończoność) w skrypcie PHP. Nieskończone pętle są również możliwymi przyczynami tego typu błędów.
7. Błąd"Fatal Error: Maximum execution time exceeded" oznacza, że czas wykonywania skryptu został przekroczony. Możesz zmodyfikować wartość"max_execution_time" w konfiguracji PHP.INI. Należy jednak pamiętać, że żaden proces działający dłużej niż 490 sekund nie jest dozwolony w naszych pakietach hostingu współdzielonego cPanel, ale przede wszystkim, że jeśli strona wymaga wyższego max_execution_time, oznaczałoby to również, że ładowałaby się wolniej, co generalnie nie jest pożądane. Jeśli strona, która wygenerowała ten błąd, przetwarza dużo danych, zalecamy przeprowadzenie przetwarzania wsadowego. Na przykład, zamiast przetwarzać 1000 produktów za każdym razem, gdy strona jest otwierana, bardziej odpowiednie byłoby przetwarzanie partii 100 produktów, na przykład za pomocą żądań AJAX. Dzięki temu uzyskasz niższy TTFB (Time-To-First-Byte).
8. Błąd"Fatal error: Uncaught Error: Call to undefined function mysql_connect()" oznacza, że moduł"mysql" nie jest załadowany w używanej wersji PHP. Błąd występuje, gdy:
Możesz łatwo zmienić wersję PHP, przechodząc do"Wybierz wersję PHP" w interfejsie cPanel.
9. Błąd"Permission denied" oznacza, że PHP nie ma praw dostępu do określonego pliku lub folderu. Błąd ten można często zobaczyć w następującej formie:
Warning file_put_contacts(/home/c123456/public_html/dossier/file.php): failed to open stream: Permission denied in /home/c123456/index.php on line 20
W takim przypadku należy sprawdzić chmods na plikach i folderach. Zasadniczo chmods są następujące:
10. Błąd"Brak takiego pliku lub katalogu" wskazuje, że PHP musi dołączyć plik, który nie wydaje się być obecny w przestrzeni FTP. Błąd przedstawia się następująco:
Warning: require_once(/home/c123456/public_html/dossier/fichier.php): failed to open stream: No such file or directory in /home/c123456/public_html/index.php on line 20
W takim przypadku należy :
11. Może pojawić się błąd"Warning:session_start(): Cannot send session cookie headers already sent", który wskazuje, że strumień został już wygenerowany i dlatego nie jest już możliwe użycie funkcji"session_start". Błąd ten można zobaczyć w następującej formie:
Warning: session_start(): Cannot send session cookie - headers already sent by (output started at /home/c123456/public_html/dossier/session.php:2 in /home/c123456/public_html/dossier/session.php on line 20
3 możliwe przyczyny tego błędu są następujące:
Możesz teraz znaleźć przyczynę błędu 500 lub pustej strony. Możesz także rozwiązać problemy ze swoją witryną.
Nie wahaj się zadawać pytań i/lub komentować.
Oceń ten artykuł :
2,5/5 | 2 opinia
Ten artykuł był dla Ciebie przydatny ?
Tak
Nie
3mn czytanie
Wordpress na cPanel: Rozwiązanie problemu białej strony lub błędu 500
1mn czytanie
Jak wyświetlić pliki dziennika Apache i PHP w cPanel?
0mn czytanie
Jak poprawić błąd 403 Forbidden w cPanelu?
0mn czytanie
Jak poprawić błąd 404 w cPanelu?