Что за код ошибки 500. Устранение ошибки на стороне серверных скриптов

  • 08.03.2020

Страницу с кодом ответа 500 веб-сервер возвращает, когда не может обработать запрос из-за ошибок в файлах сайта.

Внешний вид ошибки 500 зависит от того, чем она вызвана. При неполадках в скриптах сайта отобразится пустая страница, сообщение HTTP ERROR 500 или текст обработчика PHP.

Если проблема в файле.htaccess - сообщение Internal Server Error.

Часто ошибку 500 можно легко устранить даже не имея знаний в области веб-разработки. О том, как это сделать, расскажем далее.

Ошибки в файле.htaccess

Сообщение выводится, когда в файле.htaccess есть ошибки. Переименуйте файл.htaccess и проверьте корректность работы сайта. Если он доступен, удалите правила, которые были добавлены последними, или старый файл из резервной копии.

Ошибки в скриптах сайта

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

Функция для исследования работы сайта. Она позволяет узнать время ответа сервера, код ответа, посмотреть текст возникших ошибок и многое другое.

Нажмите сочетание клавиш Ctrl+Shift+I или используйте меню браузера:

  • Mozilla Firefox - «Веб-разработка» → «Инструменты разработчика»;
  • Google Chrome - «Дополнительные инструменты» → «Инструменты разработчика»;
  • Opera - «Разработка» → «Инструменты разработчика».

Перейдите во вкладку «Сеть (Network)» . На ошибку 500 указывает соответствующее число в колонке «Статус» .

Статус пустой страницы может быть и 200 (Ok). В таком случае проверьте, есть ли содержимое в индексном файле сайта, очистите кеш вашей CMS. Если ранее сайт работал корректно, его из резервной копии.

Вывод ошибок на сайте

Вывод ошибок PHP на хостинге по умолчанию выключен. Чтобы увидеть их текст, добавьте в файл.htaccess : php_value display_errors 1 и обновите страницу сайта.

Если текст не отобразился, включите вывод ошибок через конфигурационный файл CMS. Он расположен в сайта.

Замените в файле wp-config.php строку define(‘WP_DEBUG’, false); на define(‘WP_DEBUG’, true);

Измените значение переменных debug и error_reporting в configuration.php на: public $debug = "1"; и public $error_reporting = "maximum";

В конфигурационном файле по пути ~/public_html/bitrix/php_interface/dbconn.php замените значение переменных DBDebug и DBDebugToFile на: $DBDebug = true; и $DBDebugToFile = true;

В файле.env измените APP_DEBUG=false на APP_DEBUG=true

Алгоритм устранения ошибки можно найти в интернете, поместив ее текст в строку любой поисковой системы. Если с помощью найденной информации возобновить работу сайта не получится, его из резервной копии. Наши специалисты могут помочь с восстановлением. Для этого направьте обращение из раздела «Поддержка» Панели управления.

Иногда ошибка не выводится на странице или возникает периодически: ее тяжело отследить. Чтобы узнать текст таких ошибок, записывайте информацию о них в файл - журнал ошибок PHP. его, добавив в.htaccess строку: php_value error_log /home/username/domains/domain.ru/php_errors.log и обновите страницу сайта.

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

Быстро возобновить работу сайта можно, его из резервной копии за дату, когда ошибок не было. Если восстановление нежелательно, обратитесь к разработчику.

Для устранения некоторых ошибок не требуется специальных знаний. Рассмотрим самые распространенные.

Нехватка оперативной памяти

Ошибка с текстом Allowed memory size возникает из-за нехватки оперативной памяти для выполнения скрипта: PHP Fatal error: Allowed memory size of 134217728 bytes exhausted (tried to allocate 81 bytes) in /home/username/domains/domain.ru/public_html/somescript.php

Чтобы исправить ее, лимит оперативной памяти, добавив в файл.htaccess директиву:

Php_value memory_limit 512M

Вместо «512» укажите необходимый объем памяти. Максимальное значение ограничивается тарифом.

Текст Out of memory означает , что достигнут лимит оперативной памяти по тарифному плану:

PHP Fatal error: Out of memory (allocated 39059456) (tried to allocate 262144 bytes) in /home/username/domains/domain.ru/public_html/somescript.php

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

Ошибки в CMS

При обновлении CMS случаются синтаксические ошибки:

PHP Parse error: syntax error, unexpected "[", expecting ")" in /home/username/domains/domain.ru/public_html/wp-content/plugins/wordpress-23-related-posts-plugin/config.php on line 130

Это происходит из-за того, что новые функции CMS не поддерживают устаревшие версии PHP. Чтобы исправить ошибку, измените версию PHP для сайта на более современную в разделе «Сайты и домены» → «Управление сайтами».

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

Чтобы исправить большинство ошибок PHP, достаточно изучить их текст и принять меры, указанные в статье. Если вам не удается справиться с ней самостоятельно, обратитесь в службу поддержки.

В данной статье мы рассмотрим наиболее вероятные причины возникновения ошибки 500 "Internal Server Error". Причины указаны в порядке вероятности возникновения.

    Использование в файлах.htaccess недопустимых на нашем хостинге конструкций, например Options -MultiViews или php_value и php_flag . Вы можете открыть файл.htaccess текстовым редактором и найти строки, в начале которых используются указанные конструкции. Найденные строки можно удалить или добавить # в начале. Файл.htaccess может находиться в корневом каталоге вашего сайта - на том же уровне, что и файлы index.php или index.html или robots.txt.

    Скрипт пытается получить больше памяти, чем ограничено параметром memory_limit . Обычно достаточно увеличить этот параметр в . Увеличивать стоит постепенно, с шагом в 16 - 32 Мб, пока ошибка не пропадет. Новые настройки PHP вступают в силу в течение 3-5 минут.

    В панели управления или в php.ini включены не совместимые друг с другом расширения php. Например, одновременное включение eaccelerator и APC, либо eaccelerator и XCache почти наверняка будет приводить к ошибке Segmentation Fault и, как следствие, к ошибке Internal Server Error на сайте.

    Если вы редактировали какие либо файлы сайта в ОС Windows, то при сохранении в файл могли добавиться не совместимые с unix-форматом символы переноса строки. Для корректной работы необходимо использовать совместимые с unix-форматом переносы строк. Например, в Notepad++ этот параметр можно настроить в меню "Правка" -> "Формат конца строк" -> "Преобразовать в UNIX-формат".

    Слишком долгая работа скрипта (может быть связано, например, с выгрузкой товаров на сайте, либо другими долгими запросами). Если веб-сервер не получает никакого ответа от скрипта в течение 120 секунд, скрипт считается зависшим и его работа принудительно завершается с выдачей ошибки 500. Изменить это ограничение в индивидуальном порядке на виртуальном хостинге нельзя. В качестве решения вы можете запускать выполнение скрипта, разбив данные на части, либо через либо напрямую через .

    Скрипт возвращает HTTP-заголовки, которые веб-сервер не может распознать и не понимает как интерпретировать.

Включение лога ошибок apache

Однозначно определить источник ошибки поможет включение лога ошибок. Для этого потребуется зайти в панель управления , слева от названия сайта кликнуть на иконку с тремя горизонтальными полосками и выбрать "Журнал ошибок". Когда ошибки возникнут, то в домашнем каталоге на сервере появится файл вида sitename.ru-error.log, где sitename.ru - имя сайта, для которого вы включили лог ошибок.

Логи ошибок сохраняются в обычные текстовые файлы, их можно просмотреть подключившись к хостингу по протоколу FTP. .

Так же может быть полезно включить лог поставив галочку напротив пункта error.log и нажав кнопку сохранить. Лог ошибок будет сохранен в файле log/php-errors.log.

Ошибка 500 internal server error – внутренняя ошибка сервера, говорящая о неработоспособности какого-либо из его компонентов. В сообщении об ошибке не указывается конкретная проблема и не предлагаются способы её решения. Ситуация описывается в целом: сервер работает, но в его конфигурации или в каком-то малозначимом скрипте допущена фатальная ошибка, из-за которой обработка запросов невозможна и сервер не отвечает.

Ошибка может возникнуть практически на любом сайте. Не важно, написан сайт на простом движке или построен на базе мощной CMS , решающую роль тут играет качество администрирования сервера и аккуратность самого веб-мастера при вмешательстве в его настройки. Не редко ошибка появляется после добавления на сайт нового модуля или банального обновления CMS .

Для веб-мастера это одна с самых нежелательных ошибок. В плане оптимизации она грозит резкой потерей позиций, а оперативно ее исправить не всегда является возможным. Если не устранить проблему до того, как будет исчерпан лимит доверия ПС, возможен полный, хоть и временный, вылет из выдачи. При этом нельзя сразу определить, чем вызваны неполадки на стороне сервера и быстро решить проблему. Приходится перебирать распространенные варианты и, что называется, искать иголку в стоге сена . Как правило, ошибка 500 возникает после неумелого вмешательства в настройки сервера: порой причиной становится едва заметная ошибка в коде.

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

  • Долгое выполнение скрипта
  • Превышение лимита оперативной памяти
  • Синтаксическая ошибка в
  • Неправильные права доступа у файлов

Методы решения

Превышение лимитов

Первым делом нужно проверить, нет ли на сайте скриптов, которые слишком долго выполняются. Стоит помнить, что абсолютно все хостинг-провайдеры устанавливают жесткие ограничения на время выполнения, чтобы снизить нагрузку на собственные сервера. Если скрипт на сайте «долго думает », его просто завершают, дабы не страдали другие сайты на сервере. Результат принудительного завершения – ошибка с кодом 500. Если веб-мастер имеет непосредственный доступ к серверу, на котором расположен сайт, выявить скрипты с долгим выполнением будет легко. Достаточно отследить время выполнения каждого и найти нужный, возможно, он будет не один. А если удалять найденный скрипт никак нельзя, не будет проблемой поднять лимит на время выполнения в конфигурации сервера. Другой случай, если сайт расположен на виртуальном хостинге: без помощи технической поддержки решить проблему не удастся. Однако, администрация большинства хостингов редко идет на встречу – скорее всего, владельцу просто предложат перейти на тариф подороже.

Помимо лимита на время, существует и лимит оперативной памяти, которая доступна для выполнения скрипта. Если сайт построен на базе сложного и тяжелого движка с массой различных функций, наверняка, он будет резервировать для своей работы довольно большой объем ОЗУ сервера. Естественно, на хостинге она не бесконечная. Если вы используете бюджетное решение то на одном сервере администрация хостинга может размещать несколько сотен сайтов, поэтому если какой-то один будет потреблять много ресурсов, все остальные начнут работать гораздо медленнее. Лимит памяти так же, как и временной, указывается в конфигурации сервера. Имея прямой доступ, лимит можно повысить. Если же доступа к серверу нет, придется просить администрацию найти «прожорливый» скрипт и сообщить о нем владельцу. После нахождения тяжелого скрипта можно попытаться его оптимизировать, обратившись к программисту или самостоятельно удалив из кода ненужный функционал.

Ошибка в.

Файл. в корне сайта – важнейший конфигуратор после настроек самого сервера. Синтаксис этого файла очень строг и не допускает никаких ошибок, обычно его составляют с помощью специальных сервисов или пользуются тем, которые предлагает хостер. Если незадолго до появления ошибки с кодом 500 в этот файл собственноручно вносились изменения, можно быть уверенным, что проблема именно в нем. Возможно, веб-мастер добавил в него неправильные команды, директивы, или неподдерживаемые сервером логические конструкции.

Можно попробовать просто удалить данный файл и посмотреть на результат, так как его наличие не обязательно, это не должно повлиять на работу сайта. Если после удаления ошибка 500 исчезла, нужно восстановить файл и начать поиск ошибки. Найти ошибку в. можно с помощью специального лог-журнала “error.log “ в панели управления, не редко хостеры предоставляют к нему доступ. В данный журнал записываются все произошедшие во время работы ошибки, наверняка, через него получится узнать причину. В случае, если. содержит неправильную директиву, журнал должен содержать примерно такой лог:

Из данного лога следует, что проблема вызвана директивой “RewritRule ”. Это очевидная синтаксическая ошибка. Название директивы было напечатано неправильно – пропущена одна буква – вместо “RewtiteRule ” получилось “RewritRule ”, соответственно, вся конструкция оказалась неверной. Файл. не допускает даже столь незначительных огрехов, выдавая ошибку с кодом 500.

Неправильные права доступа

Из-за неправильно выставленных прав доступа скрипт может не работать. Однако, ошибка 500 возникает в противоположном случае: если скрипт имеет излишне высокие права с кодом 777. Объясняется это мерой безопасности самого сервера. Редкому скрипту по-настоящему нужны абсолютные права, между тем, такой скрипт может оказаться вредоносным шеллом, который встроит в сайт ненужный код или вовсе удалит все расположенные на сервере файлы вместе с ним самим, выполнив команду -rm -rf . Если уж и решаться заливать на сайт php -файл с правами 777, то только от очень проверенного разработчика, сомнений в добросовестности которого нет. Кроме того, зачастую сами хостеры блокируют возможность выдачи файлам абсолютных прав, что, несомненно, правильно.

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

    Директории – 755

    Для активных скриптов – 600

    Для обычных файлов – 644

В серверный файловых менеджерах с GUI интерфейсом установка прав выполняется в контекстном меню:

Крайне редко встречаются скрипты, для работы которых нужны права 777. Если это необходимо, разработчик заранее об этом предупредит, однако, даже в этом случае хостер вряд ли позволит разместить у себя такой файл.

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

Ошибка 500 означает, что на сервере веб-сайта, на который вы пытаетесь зайти, произошел внутрисистемный сбой. Из этого следует, что исправить ее могут либо владельцы сайтов, либо интернет-провайдер. Но все же есть некоторые действия со стороны рядового пользователя, которые могут повлиять и исправить ошибка HTTP ERROR 500.

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

Появление ошибки 500 в браузере может быть вызвана различными причинами. Поэтому мы перечислим ниже все способы для ее устранения:


Ошибка 500 в браузере Google Chrome

Причины ошибки HTTP ERROR 500

Одна из причин – это неправильная установка прав доступа к скриптам, из-за чего они блокируются. Права можно настроить любому пользователю, хотя делать это не рекомендуется по соображениям безопасности. Чтобы настроить права можно воспользоваться файловым менеджером FileZilla от разработчика браузера FireFox.

Для начала необходимо обратить внимание на настройки прав доступа. На каждый тип элемента нужно обратить внимание отдельно. Для файлов значение должно быть указано – 644, для папок – 755 и для скриптов – 600. Только одному человеку желательно настраивать аккаунт и не позволять никому получить такие права.


Настройки прав доступа

Запредельная длительность выполнения скрипта

Помимо ограничений на время выполнения со стороны языка программирования PHP, такие ограничения налаживаются на скрипт и со стороны серверных систем. Ошибке свойственно появляется в тот момент, когда за ограниченное время скрипт не завершил свою работу. В этом случае его работа будет завершена неоконченной.

Чтобы избежать ошибки HTTP ERROR 500 и ускорить работу скрипта, можно воспользоваться специальными сервисами для оптимизации работы медленных участков сценария. При использовании VPS или выделенных серверов можно изменить время ожидания сервера. Такие манипуляции не удастся провести с использование виртуального хостинга, если не получить соглашение со стороны технической поддержки.

Проблемы с файлом.htaccess

Синтаксис данного файла имеет определенную структуру, которую нельзя изменять или нарушать. Если одна из его директив имеют ошибки, то это непременно приведет к ошибке HTTP ERROR 500. Может быть, что в директиве отсутствуют ошибки или конфликты файлов, но она не поддерживается.

Найдите в корне сайта этот файл «.htaccess». После чего скопируйте его в другое место, чтобы не потерять. Теперь удалите его из сайта. Если все стало на свои места, значит проблема именно в этом файле. В этом случае возьмите файл из нового дистрибутива вашей CMS (Системы управления сайтом).


Файл.htaccess

Можно просмотреть сведения об ошибках сервера. Все они заносятся в специальный файл под именем – «error.log». Открыв его, вы можете найти информацию о том, какая именно из ваших директив является конфликтной. К примеру, «Invalid command ‘Prive’ сообщает нам о том, что ‘Price’ директива содержит опечатку, исправив «v» на «c» решится данная проблема.

Коду нужно больше памяти

Система виртуального хостинга строго контролирует память, выделяемую под нужды различных скриптов и программ. Таким образом сервера предотвращают перегрузку памяти. Когда по каким-то ошибочным причинам код начинает потреблять больше памяти появляется ошибка 500.


Память под работу скриптов

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

Ошибка 500 (Internal Server Error) - внутренняя ошибка сервера - 4.2 out of 5 based on 9 votes

500 (Internal Server Error) - внутренняя ошибка сервера - код статуса протокола HTTP означающий, что в конфигурации сервера возникла определенная ошибка или один из его компонентов сообщил об отказе. Ошибку можно увидеть на сайтах построенных на самых разных CMS.

Часто такая ошибка возникает в таких CMS как WordPress, Joomla, Битрикс, OpenCart и других. Поэтому мы рассмотрим самые распространенные причины возникновения данной ошибки и способы ее устранения.

Что означает ошибка 500

Ошибка 500 означает, что программное обеспечение сервера работает, но на его стороне возникают серьезные внутренние ошибки. В результате чего запросы нормально не обрабатываются и в ответ на них клиенту (браузеру посетителя или поисковику), выдается код ошибки 500.

Вообще причин возникновения ошибки 500 может быть огромное множество, рассмотрим те которые встречаются чаще всего.

Стандартная страница ошибки выглядит так:

По каким причинам может показываться данная ошибка и как ее исправить

1. Неправильные права доступа на папки и файлы. Если на PHP файлы скриптов размещенных на вашем хостинге стоят права доступа 777, то исполнение данных скриптов может быть заблокировано сервером и вам будет показана ошибка 500. Происходит это из-за того, что права доступа 777 позволяют всем производить любые изменения с данным файлом, что существенно влияет на безопасность и целостность вашего сайта.

Решение: Проверьте права доступа на папки и файлы сайта. Для папок рекомендованы права доступа 755, для исполняемых скриптов 600, а для всех остальных файлов 644.

2. Очень долгая работа скрипта. На хостингах, кроме PHP ограничений времени на исполнение скрипта, имеется и ограничение со стороны сервера. Поэтому если сервер не получает ответ в течении определенного количества времени, установленного в его конфигурации, работа скрипта принудительно завершается и мы видим сообщение об ошибке 500.

Решение: Попытаться оптимизировать работу скрипта. Можно так же увеличить время ожидания сервера, но только если у вас VPS или выделенный сервер, на виртуальном хостинге это врат ли удастся сделать.

3. В файле.htaccess содержаться не правильные или не поддерживаемые сервером директивы. Файл.htaccess имеет очень строгий синтаксис и если вы производя определенные настройки допустили какие то ошибки то вам также будет показана ошибка 500 Internal Server Error.

Решение: Посмотрите имеется ли в корневой папке сайта файл.htaccess. Если он там есть сделайте его резервную копию и попробуйте вовсе удалить. Если после этого сайт заработал значит причина в нем.

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

/home/UXXXXX/vash-sait.ru/www/.htaccess: Invalid command "RewritRule", perhaps mis-spelled or defined by a module not included in the server configuration

4. Для своей работы скрипт хочет получить слишком большое количество памяти. Данная причина может быть на виртуальном хостинге, где кроме лимита памяти установленного в PHP отслеживается общее количество памяти потребляемое скриптами. Если данное потребление слишком велико, т. е. больше чем отведено по вашему тарифному плану, то работа скрипта завершается и выдается сообщение об 500 - й ошибке. Сделано это для предотвращения чрезмерной нагрузки на сервер со тороны каждого аккаунта виртуального хостинга.