Внутренняя ошибка сервера 500 как исправить. Ошибка Internal Server Error: что это и как с ней бороться

Есть вопросы? Напиши комментарий!

Привет! Не давно мой сайт погас и на экране появилась надпись – 500 внутренняя ошибка сервера. Я как человек уже более или менее опытный в этих делах, быстро всё восстановил, сразу нашёл причину и устранил её. Важно всегда отдавать себе отчёт в том что вы делаете, понимаете ли вы то что вы делаете, есть ли у вас достаточно необходимой информации и т.д.

Конечно всё это приходит не сразу, а с опытом и для этого нужно постоянно учиться и практиковаться. И вы должны понимать, что сайт просто так не выходит из строя. Перед тем как сайт “гаснет” происходят определённые действия, вы или кто-то другой вносит какие-либо изменения на сайт. Как раз эти действия и становятся решающими. Вот список основных и самых распространённых причин вызывающих 500 ошибку:

500 внутренняя ошибка сервера

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

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

– Вы установили на сайт плагин, который автоматически внёс изменения в файл htaccess. Такое то же часто бывает, есть плагины которые добавляют определённый код в файл htaccess. На wordpress это популярные плагины – All In One Seo Pack, Jetpack, Akismet, WP Super Cache, Yoast SEO и т.д. Ошибка может возникнуть из-за несовместимости.

– Вы установили на сайт плагин и он оказался несовместимым с вашим сайтом или с отдельной его частью. На wordpress такое часто бывает и проблема очень быстро решается. Нужно зайти в панель хостинга и удалить только что установленный плагин.

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

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

– Технические работы хостинга на сервере, о которых вас не предупредили. Такое то же возможно, но обычно качественные хостинг-компании предупреждают своих клиентов о предстоящих тех.работах на сервере. Но бывает и такое что сама хостинг компания не может предугадать таких событий, так как они разворачиваются спонтанно из-за сбоев на сервере или doos атак. На качественных хостингах такое редко бывает.

Как выявить 500 ошибку и быстро её устранить

На каждом сервере, а в первую очередь это касается сервера Apache, так как он самый распространённый, есть файл Error log, в котором записываются все ошибки сайта. После того как сайт выдаст 500 ошибку, в файле error log тут же отобразится данная ошибка и главное будет указана причина данной ошибки. Будет указано место ошибки (название файла и путь к файлу), будет указан номер строки в файле в которой допущена ошибка.

Поэтому в первую очередь вам нужно зайти в свою панель на хостинге cPanel либо любую другую панель. Путь к файлу error log в основном проистекает следующим образом: Диспетчер файлов – Public html – . Вам нужен файл error log который располагается в корневой директории вашего сайта, где находятся все основные файлы вашего сайта или CMS системы.

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

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

На скриншоте показан фрагмент файла error log с сайта на CMS WordPress. Поэтому тут сразу становится понятно, что ошибка произошла из-за темы сайта, которая располагается по адресу wp-content/themes/название темы/файл темы в котором произошла ошибка, on line 423 – номер строки в файле где возникает ошибка, конфликт или несовместимость.

Посмотрите в каком разделе вашего сайта и в каком файле произошла ошибка, так вы сможете понять в какой части сайта произошла ошибка и как её исправить.

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

– Если в файле error log отображается название плагина, то тут всё очень просто, удаляете плагин и всё готово.

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

– Если дело не в плагине, не в теме и не в файле htaccess и вы не помните и не знаете где вы лазили и что меняли, то конечно файл error log вряд ли вам поможет. В таком случае есть два варианта, 1 – обратиться к специалисту, 2 – восстановить сайт с помощью резервной копии, если таковая имеется. Возможно вам понадобится заменить всего один файл, название которого будет указано в файле error log и всё быстро решится.

Помните! Перед тем как вносить какие-либо изменения в код сайта, если вы плохо понимаете что вы делаете, СДЕЛАЙТЕ ПОЛНУЮ РЕЗЕРВНУЮ КОПИЮ ВАШЕГО САЙТА!

Остались вопросы? Напиши комментарий! Удачи!


500 внутренняя ошибка сервера как исправить на любом сайте обновлено: Март 26, 2019 автором: Илья Журавлёв

В данной статье мы рассмотрим наиболее вероятные причины возникновения ошибки 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.

При плохой системной конфигурации,работа сервера может пойти наперекосяк,и тогда Hypertext Transfer Protocol (HTTP) показывает сообщения об ошибках.В частности,сообщение об ошибке «HTTP 500 Internal server error» обычно происходит,когда администратор сайта пытается загрузить файл на сайт.Для администраторов,которые управляют сервером,такая ситуация не должна быть проигнорирована,так как страдают конфигурационные файлы системы.Чтобы исправить эту ошибку,требуются усилия команды,и они начинаются с конечного пользователя,уведомлением администратора сервера и заканчивается хостингом сайта,что бы принять меры.500 Internal Server Error-это общее сообщение об ошибке, выдаваемое при отсутствии более конкретных подходящих сообщений.

Как правило,для решения этой проблемы необходимо воспользоваться помощью лог-файлов,которые расположены в следующей папке:
=>/var/log/message
=>/var/log/httpd/error_logs (/var/log/lighttpd/error_log /var/log/httpd/error_log)

Так что вы даже можете быть удивлены,почему ваш PHP-скрипт выдаёт внутреннюю ошибку сервера 500.Эта ошибка возникает только из-за программного обеспечения веб-сервера.Однако,просмотрев журналы можно не обнаружить множество деталей.Эта проблема может быть вызвана:

  • Уродливым php-cgi-скриптом
  • Недопустимая директива в.htaccess или других config file
  • Ограничения,наложенные файловой системы и программным обеспечением сервера (например,файл php журнала размер 10 Мб)
  • Отсутствует php.ini (или не может прочитать файл php.ini)

В большинстве случаев она является недействительной директивой.htaccess.Однако недавно я наткнулся на web server w/o/etc/php.ini. Я давно настроил этот сервер (Apache в chroot jail). Поэтому нужно сохранять два файла один за пределами сервера,а другой внутри сервера:
=>/etc/php.ini
=>/chroot/etc/php.ini <- этот файл отсутствует

Многие скрипты могут открыть этот файл на лету,чтобы получить правильные директивы конфигурации. Если этот файл не найден, вы получите сообщение об ошибке 500. Потребовалось некоторое время, чтобы выяснить эту проблему.

Причины и решения:

1 - система безопасности (mod_security)

mod_security-это система безопасности,которая работает на webserver для выявления типичной хакерской деятельности,если они пытаются сделать что-то на сервере.Она ищет структуры, широко используемые хакерскими скриптами и слова,и если правило срабатывает,она отправляет ошибку 500,и даже может временно заблокировать IP-адрес посетителя.
В mod_security есть правила,которые будут перечислены в журналах ошибок *и* в mod_security журнале.

2 - suexec

Если сервер настроен на использование php_suexec (который предназначен для обеспечения безопасности чуть лучше в том, как хранятся файлы и разрешения управляются с PHP скриптами), то вам не позволят установить какие-либо файлы или папки в уровни разрешений «777» («world-writable). Максимально допустимый в таких случаях, как правило, уровень разрешений 755.
В этой ситуации, если вы установите на папку уровень разрешения «777», сервер выдает 500 Internal Server Error и блокирует любые скрипты или файлы в этой папке.Заблокированные папки будут перечислены в журналах.Таким образом, в этом случае вы должны использовать уровень разрешения 755 вместо 777 при чтении инструкции, которые предполагают использование уровня разрешений «777».

3 - ошибки синтаксиса.htaccess .htaccess ограничений, налагаемых main server configuration

Если ваш сервер настроен на ограничение использования определенных директив в файлах.htaccess, но вы используете что-то не разрешенное,то будет срабатывать “500 Internal Server Error” , и ваш сайт будет недоступен, пока вы не решите проблему.
Точные правила будут записаны в журналы,например внутри каталога subdomian,убедитесь в том, что.htaccess находится в этом каталоге.

# Различные правила перезаписи.

RewriteEngine on
++++++++++++++++++++++
#Если ваш сайт работает в VirtualDocumentRoot на http://example.com/,
# раскомментируйте следующую строку:
RewriteBase / <-удалить хэш (#)

4 - ошибки PHP

Иногда,когда PHP-скрипт обнаруживает ошибку,либо из-за истечения времени ожидания или синтаксическая проблема,или что-то ещё хуже,как логическую проблему, он *может* выдать триггер 500 внутренняя ошибка сервера. Он может выдавать эту ошибку не всегда, но может.

5 - плохое содержание configure.php

Если URL-адреса или пути,или что-нибудь ещё,находятся в вашем файле configure.php -это информация для другого сервера,или не правильно для *вашего* server,то для многих как ни странно,могут возникнуть проблемы, в том числе, возможно и ошибка 500. Однако, как правило,это будут очень разные симптомы.Просто убедитесь, что Вы не скопировали файлы configure.php с одного сервера на другой, даже localhost.

Доброго времени суток всем читателям блога сайт! Наверняка почти каждый из вас, пользователей интернета, сталкивался с такой проблемой – вместо страницы сайта вдруг возникает сообщение 500 internal server error , что означает — внутренняя ошибка сервера.

Цифра 500 в данном случае — это код статуса протокола HTTP, который расшифровывается как указание на то, что конфигурация сервера нарушена. То есть, возникает определенная ошибка на сервере, или же один из его узлов дал сбой ил отказал полностью. Такая ошибка – это не вина вашего сайта, ее можно наблюдать на самых разных сайтах, построенных на самых разных CMS.

Часто 500 ошибка сервера может возникнуть в Joomla, WordPress, OpenCart, Битрикс, DLE и многих других, даже самописных. Но, хоть от нас здесь мало что зависит, я предлагаю все же рассмотреть наиболее распространенные причины, по которым может возникнуть ошибка сервера, а также некоторые (они все же есть) способы устранения ошибки 500.

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

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

Из-за чего показывается ошибка 500 и как исправляется

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

Как можно решить: Необходимо проверить права доступа на запись всех папок и файлов ваших сайтов. Для папок (директорий) рекомендуется выставлять права доступа 755, для исполняемых скриптов – права доступа 600, а для остальных файлов – права 644. Если нужно установить права 777, то поставщик заранее предупреждает об этом.

  1. Скрипт очень долго выполняется, вследствие чего тоже может появиться код ошибки 500 внутренняя ошибка сервера . На любом хостинге есть ограничения не только по времени исполнения скриптов, но и запреты на исполнение со стороны сервера. И, если сервер не получит ответ в определенный промежуток времени, которое устанавливается в его конфигурации, то работа скрипта завершится в принудительном порядке. Результат такого обрыва — сообщение об ошибке сервера 500.

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

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

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

Также вы можете изучить логи сервера – в вашей панели управления должна быть такая функция. Все сведения об ошибках записываются в специальный журнал, и вы можете увидеть, когда произошла ошибка и что ее вызвало. Если в файле.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

То есть, в этом сообщении вы увидите, какая директива вызывает ошибку. В нашем примере это директива RewritRule – такой директивы просто не существует. Есть директива RewriteRule, но в нашем примере пропущена одна буква, поэтому сервер отвечает ошибкой.

  1. Скрипт очень большой или многофункциональный, поэтому для его работы нужно большое количество памяти. Такая причина может возникнуть на виртуальном хостинге, где в php настройках сайта устанавливается лимит памяти, а также отслеживается общий объем памяти, потребляемой всеми скриптами и файлами. Если потребление памяти превышает установленный лимит (смотрите свой тарифный план на хостинге), то работа скрипта прекращается и вы получаете долгожданное сообщение error 500 внутренняя ошибка сервера . Устанавливается такое ограничение для того, чтобы предупредить появление повышенной нагрузки на сервер со стороны аккаунтов виртуального хостинга.

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

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

Приветствую друзья. В сегодняшней статье, я хочу рассказать вам об особенностях ошибки 500 internal server error и пояснить причины, по которым она возникает. Но для начала давайте разберемся с самим термином. Итак, эта ошибка, возникает в результате неправильной конфигурации сервера, на котором находится сайт, или же один из компонентов этого сервера, перестал нормально функционировать и сообщил об аварийном отказе.
Теперь, давайте рассмотрим основные причины, по которым может возникать данная ошибка, и я расскажу вам о методах для ее устранения.

1) Наиболее распространенная причина появления ошибки 500 internal server error, это некорректное содержимое файла.htaccess. В этом файле не должны присутствовать специальные php-директивы, по типу таких:

php_value name value
php_flag name on|off

Другие некорректные директивы или содержимое, также могут вызывать эту ошибку.

Для исправления в данном случае, необходимо перед строкой, в которой вы сомневаетесь, поставить знак комментирования #, который указывает серверу, что это не команда, а простой комментарий, и поэтому, ее не нужно выполнять.

Если после комментирования определенной строки, ваш сайт заработал, значит, проблема в синтаксисе или сочетании команд.

2) Если ошибка возникает в результате перехода на определенную страницу или каталог, проверьте установленные права на файлы и каталоги. Для файла или страницы они должны быть – 644, для каталога – 755.

Важно! Ни в коем случае права не должны быть – 777, так как это полный доступ к файлу или папке, что угрожает безопасности вашего сайта!

3) Если такая ошибка возникает при переходе на файлы такого типа:

*.pl, *.cgi (Perl- или CGI-файл)

то обязательно проверьте указанный в скрипте путь к Perl. Этот путь можно найти на главной странице вашей cPanel.

Важно! GGI или Perl-скрипты обязательно должны быть загружены на хостинг в формате ASCII, а также выставлены права 755 на каталоги в которых они находятся.

Не соблюдение этих требований и приводит к ошибке 500 internal server error.

4) Каждый хостинг дает определенные ограничения для использования своих ресурсов. В случаи их превышения, может возникать данная ошибка. Особенно это свойственно сайтам, когда вышеописанная проблема появляется периодически.
Решение простое. Сменить тарифный план на более мощный или перейти на выделенный сервер.

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

Также можно самостоятельно провести анализ лог-файлов. Обычно эти данные хранятся в файле error_log (error.log).

Вот и все о чем я хотел рассказать в данной статье. Если остались вопросы, задавайте в комментариях.




Top