Diagnozowanie i poprawianie błędu 500 na VPS z ISPConfig

Procédure

Co to jest pusta strona lub błąd 500?

Błąd 500 to kod stanu strony, który oznacza wewnętrzny błąd serwera. Oznacza on, że wystąpił błąd na serwerze internetowym. Może on pochodzić z serwera WWW Apache2, z interpretera PHP, który przekazał błąd do serwera WWW, lub z bazy danych MySQL, która przekazała błąd do PHP, a ten z kolei przekazał go do serwera WWW. Wygląda to następująco:

Diagnozowanie i poprawianie błędu 500 na VPS z ISPConfig

Jeśli chodzi o inne przeglądarki, możesz po prostu zobaczyć pustą stronę bez treści:

Diagnozowanie i poprawianie błędu 500 na VPS z ISPConfig

W przypadku witryn Prestashop zobaczysz stronę błędu wygenerowaną przez Prestashop :

Diagnozowanie i poprawianie błędu 500 na VPS z ISPConfig

Aby zdiagnozować problem, bardziej praktyczne będzie wyświetlenie błędów bezpośrednio na stronie internetowej (nawet jeśli są one widoczne w pliku error.log w folderze dziennika dostępnym za pośrednictwem konta FTP).

Wyświetlanie błędów PHP

Aby wyświetlić błędy PHP, należy zmodyfikować plik php.ini dla danej witryny. W ISPConfig kliknij na Witryny, a następnie wybierz odpowiednią witrynę:

Diagnozowanie i poprawianie błędu 500 na VPS z ISPConfig

Następnie kliknij zakładkę "Opcje" i dodaj następującą linię do pola "Niestandardowe ustawienia php.ini":

display_errors = On

Diagnozowanie i poprawianie błędu 500 na VPS z ISPConfig

Zaleca się również dodanie następującej linii, aby upewnić się, że błędy są zgłaszane, aby były wyświetlane na ekranie (w przypadku, gdy skrypt domyślnie to wyłącza):

error_reporting = E_ALL

Włącz tryb debugowania na swojej stronie internetowej

Niektóre systemy CMS i frameworki, takie jak WordPress, Prestashop, Symfony, Laravel itp. mogą ignorować fakt, że display_errors jest ustawiony na On w PHP, ponieważ mają własne systemy zarządzania błędami.

Włączanie trybu debugowania w WordPress

Aby włączyć tryb debugowania w witrynie opartej na WordPress, należy zmodyfikować plik wp-config. php, ustawiając wartość WP_DEBUG na true i WP_DEBUG_DISPLAY również na true.

Jeśli WP_DEBUG_DISPLAY nie znajduje się w wp-config.php, należy dodać go po WP_DEBUG:

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

Włączanie trybu debugowania na Prestashop

Aby włączyć tryb debugowania w Prestashop, należy zmodyfikować plik config/defines.inc.php. W tym pliku ustaw _PS_MODE_DEV_ na true.

define('_PS_MODE_DEV_', true);

Aktywacja trybu debugowania w Joomla

Aby włączyć tryb debugowania w Joomla, należy zmodyfikować plik configuration.php. W tym pliku ustaw $debug na 1 i $error_reporting na maksimum.

public $debug = '1';
public $error_reporting = 'maximum';

Włączanie trybu debugowania w Laravel

Aby aktywować tryb debugowania w Laravel, należy zmodyfikować plik . env, ustawiając APP_DEBUG na true:

APP_DEBUG=true

Następnie należy usunąć pamięć podręczną pliku konfiguracyjnego. W konsoli uruchom następujące polecenie:

php artisan config:clear

Zrozumienie błędów PHP

Drugim najważniejszym krokiem jest zrozumienie błędów i znalezienie rozwiązania.

Błąd parsowania - błąd składni

Błędy "parse error" i "syntax error" są powodowane przez źle napisany kod PHP: brakujące średniki na końcu, niedomknięte nawiasy, cudzysłowy itp.

Niektóre składnie mogą również powodować problemy tylko w niektórych wersjach PHP, ponieważ składnia PHP ewoluuje pomiędzy wersjami. Na przykład, użycie nawiasów kwadratowych do zadeklarowania tablicy działa w PHP 7.2, ale nie w PHP 7.4.

Warto zatem sprawdzić idostosować wersję PHP do specyfiki swojej witryny.

Błąd krytyczny: wywołanie niezdefiniowanej funkcji

Wystąpienie tego błędu oznacza, że funkcja, którą PHP próbuje wywołać, nie istnieje. Problem ten występuje, gdy w witrynie brakuje plików lub są one niekompletne.

Błąd krytyczny: Niewykryty błąd: Wywołanie niezdefiniowanej funkcji mysql_connect()

Ten komunikat o błędzie wskazuje, że funkcja mysql_connect( ) nie istnieje. Funkcja ta nie istnieje już w PHP 7.0 i nowszych. Będziesz musiał użyć wersji PHP 5.x, aby Twoja witryna działała.

Błąd krytyczny: nie można ponownie zadeklarować

Wystąpienie tego błędu oznacza, że ta sama nazwa funkcji została zadeklarowana kilka razy. Problem ten występuje w szczególności, gdy wtyczki, motywy, moduły itp. używają tej samej nazwy funkcji.

Błąd krytyczny: wyczerpano dozwolony rozmiar pamięci

Oznacza to, że przekroczono maksymalny dozwolony rozmiar pamięci RAM. Problem ten występuje w przypadku przekroczenia limitu memory_limit określonego na stronie internetowej.

Zalecane wartości preinstalowane w pakiecie VPS są następujące:

  • VPS S: memory_limit=1024M (1 GB)
  • VPS M: memory_limit=2048M (2 GB)
  • VPS L: memory_limit=4096M (4 GB)
  • VPS XL: memory_limit=6144M (6 GB)
  • VPS PRO S: memory_limit=7168M (7 GB)
  • VPS PRO M: memory_limit=8192M (8 GB)
  • VPS PRO L: memory_limit=9216M (9 GB)
  • VPS PRO XL: memory_limit=12288M (12 GB)

Jeśli jednak chcesz dostosować wartość memory_limit, możesz to zrobić z poziomu ISPConfig.

W zakładce "Opcje " na stronie ISPConfig, dodaj linię memory_limit do dyrektyw PHP.INI:

Diagnozowanie i poprawianie błędu 500 na VPS z ISPConfig

Więcej informacji na ten temat: Jak zmodyfikować plik php.ini na serwerze VPS przez ISPConfig?

Błąd krytyczny: Przekroczono maksymalny czas wykonania

Ten komunikat o błędzie jest związany z faktem, że skrypt PHP potrzebuje więcej czasu na wygenerowanie wyniku niż pozwalają na to parametry php.ini.

Aby rozwiązać ten problem, można zwiększyć maksymalny czas wykonywania. W zakładce "Opcje" na stronie ISPConfig, dodaj następującą linię do dyrektyw PHP.INI:

max_execution_time = 1800

Tutaj ustawiliśmy 1800 sekund, czyli 30 minut.

Ważne: Jeśli czas wykonywania PHP jest zbyt długi, Apache2 może nie być w stanie czekać do końca. W rezultacie Apache2 wyśle błąd 503 do odwiedzającego (błąd 522 lub 524, jeśli używasz CloudFlare). Dlatego ważne jest, aby utrzymać tę wartość na jak najniższym poziomie. Zalecamy ustawienie go na 30 sekund(max_execution_time = 30), chyba że planujesz wykonać masowe operacje importu lub eksportu na swoich stronach.

SQLSTATE[28000] [1045] Odmowa dostępu dla użytkownika

Oznacza to, że używany użytkownik lub hasło MySQL jest nieprawidłowe.

Diagnozowanie i poprawianie błędu 500 na VPS z ISPConfig
Przykład strony błędu "Odmowa dostępu" na Prestashop

Jeśli korzystasz z WordPressa, komunikat o błędzie może być inny:

Błąd nawiązywania połączenia z bazą danych

Aby sprawdzić, czy kombinacja użytkownika i hasła MySQL działa, proponuję przejść do phpMyAdmin i użyć go.

Diagnozowanie i poprawianie błędu 500 na VPS z ISPConfig

Jeśli phpMyAdmin również wyświetla taki błąd, oznacza to, że użytkownik lub hasło MySQL jest nieprawidłowe. Możesz je zresetować w ISPConfig.

Nie można nawiązać połączenia z bazą danych:SQLSTATE[HY000] [2002] Brak takiego pliku lub katalogu

Diagnozowanie i poprawianie błędu 500 na VPS z ISPConfig

Ten komunikat o błędzie jest związany z faktem, że witryna próbuje połączyć się z serwerem MySQL przy użyciu gniazda Unix zamiast połączenia TCP.

Jednak gniazdo Unix, którego próbuje użyć, nie jest dostępne na jego poziomie (na przykład z powodu ograniczenia openbase_dir ).

Aby rozwiązać ten problem, należy zmusić witrynę do korzystania z połączenia TCP, zastępując "localhost " przez "127.0.0.1 " w parametrze serwera MySQL witryny.

W przypadku Prestashop 1.6 należy edytować plik config/settings.inc.php:

Diagnozowanie i poprawianie błędu 500 na VPS z ISPConfig

W przypadku Prestashop 1.7 należy edytować plik app/config/parameters.php:

[...] 'database_host' => '127.0.0.1', [...]

W przypadku witryny WordPress należy edytować plik wp-config.php:

[...] define('DB_HOST', '127.0.0.1'); [...]

W przypadku witryny Joomla należy edytować plik configuration. php:

[...] public $host = '127.0.0.1'; [...]

Procedura wideo dla WordPress


Oceń ten artykuł :

Ten artykuł był dla Ciebie przydatny ?

Article utileTak

Article non utileNie

MerciMerci ! N'hésitez pas à poser des questions sur nos documentations si vous souhaitez plus d'informations et nous aider à les améliorer.


Vous avez noté 0 étoile(s)

Podobne artykuły

2mn czytanie

Jak utworzyć konto FTP w ISPConfig?

0mn czytanie

Połączenie SFTP

1mn czytanie

Jak aktywować SSL na mojej stronie z ISPConfig 3?

0mn czytanie

Jak zmienić hasło FTP z poziomu IspConfig?


Zadaj pytanie zespołowi LWS i jego społeczności