Хостинг для 1С Битрикс
+7 (495) 128-79-91
BXHosting.ru

Ошибка 500 “INTERNAL SERVER ERROR” (внутренняя ошибка сервера)

27.03.2022

Появляется, когда невозможно запустить скрипт, размещенный на сервере, ошибки в скрипте или загрузка некорректной инструкции в файле .htaccess может вызвать такую проблему. Возможных причин больше, но три нижеприведенные являются наиболее распространенными.

  1. Неверная инструкция в файле .htaccess. Если в названии требуемой директивы или ее параметрах была сделана ошибка, то файл error.log будет содержать следующий формат ошибки: [Wed Apr 14 17:01:38 2004] [alert] [client 217.16.16.16] /home/uXXXXX/aaa.ru/www/.htaccess:Invalid command 'DrectoryIndex', perhaps mis-spelled or defined bya module not included in the server configuration. С определением основной ошибки в директиве сам веб-сервер подскажет, после чего остается только исправить. Здесь веб-сервер указал, что он не знаком с директивой DrectoryIndex. Правильно, потому что есть DirectoryIndex. То есть здесь опечатка.
  2. Ошибка 500 может возникнуть при вызове скрипта на Perl, расположенного в каталоге cgi-bin. Тогда стоит проверить права доступа к этому скрипту. Права должны быть 755 (rwxrx-rx). Если это не так, права 755 изменяются с помощью команды chmod 755 script.pl в unix shell. Вы также можете использовать FTP. Права на скрипты строго установлены на 755, поэтому рекомендуем проверить, какой именно режим вы использовали при передачи файлов по FTP во время загрузки скрипта на наш сервер.
  3. Скрипты и любые текстовые файлы передаются только по FTP в текстовом режиме (ASCII). Если вы использовали режим передачи двоичных файлов, скрипты, скорее всего, работать не будут. Если вы проверили правильность файлов, которые были установлены в файл скрипта, но ошибка все еще не исчезла, вам нужно будет проверить последние записи в файле error.log. Здесь веб-сервер собирает все уведомления об ошибках. Таким образом, вы можете найти следующую строку: [Fri Apr 9 15:05:31 2004] [error][client 111.111.111.111] Premature end of script headers: /data/uXXXX/aaa.ru/www/site.com/script.php. Если вы получаете такой вид ошибки, то необходимо проверить, правильно ли скрипт отображает заголовки HTTP. Так как в первую очередь каждый скрипт выводит строку, в которой указан конкретный Content-type, и только после этого выскакивает именно то, что увидит пользователь (например, HTML-код). Строка для отображения заголовка стандартного HTML-документа выглядит так: print "Content-type: text/html; charset=windows-1251\n\n.

Если в скрипте обнаруживаются ошибки, они исправляются в рамках соответствующей диагностики, после этого рекомендуем еще раз проверить синтаксис скрипта.