Oceń ten artykuł :
Ten artykuł był dla Ciebie przydatny ?
Tak
Nie
Vous avez noté 0 étoile(s)
Sommaire
Procédure
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:

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

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

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).
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ę:

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

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
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.
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);
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);
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';
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
Drugim najważniejszym krokiem jest zrozumienie błędów i znalezienie rozwiązania.
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.
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.
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.
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.
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:
memory_limit=1024M (1 GB)memory_limit=2048M (2 GB)memory_limit=4096M (4 GB)memory_limit=6144M (6 GB)memory_limit=7168M (7 GB)memory_limit=8192M (8 GB)memory_limit=9216M (9 GB)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:

Więcej informacji na ten temat: Jak zmodyfikować plik php.ini na serwerze VPS przez ISPConfig?
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.
Oznacza to, że używany użytkownik lub hasło MySQL jest nieprawidłowe.

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.

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.

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:

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'; [...]
Oceń ten artykuł :
Ten artykuł był dla Ciebie przydatny ?
Tak
Nie
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?