Błąd 500 "Wewnętrzny błąd serwera"
Ten błąd występuje w przypadku nieprawidłowego działania Twoich skryptów lub nieprawidłowych ustawień pliku .htaccess.
Nie można rozważyć wszystkich możliwych przyczyn wystąpienia tego błędu, dlatego omówimy główne:
1. Używane są nieprawidłowe lub niedostępne dyrektywy w pliku .htaccess. Sprawdź zawartość .htaccess pod kątem poprawności składni. Przejrzyj dziennik błędów (error.log), który jest dostępny w FTP folderze logs.
Na przykład, w dzienniku błędów:
[DD MM xx hh:mm:ss yyyy] [alert] [client xx.xx.xx.xx] /var/www/username/www/Twój_domen/.htaccess: Nieprawidłowe polecenie 'php_value', być może źle napisane lub zdefiniowane przez moduł, który nie jest uwzględniony w konfiguracji serwera
php_value jest dyrektywą mod_php, która jest niedostępna na serwerze. Jeśli otworzysz plik www/Twój_domen/.htaccess w swoim koncie, zobaczysz linijki z problematyczną dyrektywą, na przykład:
php_value magic_quotes_gpc 0
Aby usunąć usterkę, należy usunąć linię lub skomentować ją, używając symbolu «#»:
# php_value magic_quotes_gpc 0
Podobna sytuacja występuje przy używaniu php_flag:
[DD MM xx hh:mm:ss yyyy] [alert] [client xx.xx.xx.xx] /var/www/username/www/Twój_domen/.htaccess: Nieprawidłowe polecenie php_flag', być może źle napisane lub zdefiniowane przez moduł, który nie jest uwzględniony w konfiguracji serwera
Należy otworzyć /www/Twój_domen/.htaccess i usunąć lub skomentować linijki zawierające tę dyrektywę, na przykład:
#php_flag zlib.output_compression 1
Warto również być ostrożnym z dyrektywami Options MultiViews i SymLinksIfOwnerMatch.
MultiViews – może prowadzić do serwowania przez serwer nieistniejących stron witryny. W przypadku próby dostępu do nieistniejącej strony lub sekcji, zostanie podjęta próba znalezienia folderu lub pliku o podobnej nazwie i serwowania go zamiast żądanego.
SymLinksIfOwnerMatch – pozwala serwerowi WWW na używanie dowiązań symbolicznych, tylko jeśli właściciel pliku lub katalogu, na który wskazuje to dowiązanie, zgadza się z właścicielem wskazanego katalogu. Jeśli ten warunek nie jest spełniony, Twoje skrypty będą działać nieprawidłowo. Ta dyrektywa generuje również dużą obciążenie serwera z powodu dodatkowych zapytań systemowych.
2. Nieprawidłowe działanie skryptu. Możliwe, że używa on niedostępnych funkcji, lub po prostu skrypt ma nieprawidłową składnię lub został uszkodzony podczas przesyłania na serwer. Sprawdź poprawność składni. Jeśli skrypt używa włączeń (includes), upewnij się, że są one i katalogi, które je zawierają, są dostępne do odczytu. Przejrzyj dziennik błędów /logs/twój_domen.error.log, aby określić dokładną przyczynę.
3. Możliwe, że Twoje skrypty używają wychodzących połączeń (mogą to być skrypty programów partnerskich, liczniki itp.), które nie zdążają się wykonać po stronie zewnętrznego serwera.
W przypadku, gdy po sprawdzeniu swoich skryptów nie udało Ci się określić przyczyny wystąpienia błędu 500 - napisz do nas, podając okres czasu, w którym obserwowałeś ten błąd, pomożemy Ci określić przyczynę, dla której ten błąd występuje.