Http error 500 что делать. Что означает ошибка сервера

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

Привет! Не давно мой сайт погас и на экране появилась надпись – 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 внутренняя ошибка сервера как исправить на любом сайте обновлено: Август 20, 2018 автором: Илья Журавлёв

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

Ошибка Internal Server Error: что это?

Итак, начнем, пожалуй, с самого значения этого словосочетания. В системе (каталоге) ошибок Windows (и не только) есть ошибка под номером 500, отвечающая Internal Server Error. Перевод этого словосочетания означает внутреннюю ошибку сервера, связанную со статусом

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

Причины возникновения ошибки

Говоря об ошибке Internal Server Error в самом широком понимании, стоит учитывать, что возникать она может на множестве сайтов или ресурсов, написанных с помощью совершенно разных CMS. Тут, кстати, нужно разграничить причины ее возникновения.

Очень часто такая ситуация может наблюдаться на сайтах типа WordPress, OpenCart, Joomla и др. Если же структуры управления, подобные WordPress, при построении сайта не используются, возможно, причина кроется в том, что на самом хостинге возникают сбои при подключении неправильных PHP-расширений, или сайт после запроса возвращает некорректные HTTP-заголовки, которые не могут быть распознаны вашим сервером.

Не менее распространенной причиной возникновения ошибки Internal Server Error можно назвать отсутствие корректных прав доступа. Так, например, если на PHP файлы скриптов, которые размещены на хостинге, имеют права доступа 777, очень может быть, что их исполнение попросту блокируется сервером, вследствие чего и выдается сообщение об ошибке.

Также одной из причин может быть достаточно долгая работа скриптов. Дело в том, что PHP-ограничения по времени исполнения действуют не только в отношении хостинга, подобные лимиты могут выставляться и со стороны сервера. Иными словами, это несколько напоминает тайм-аут операции. Когда сервер в течение определенного времени не получает ответа на запрос, он попросту блокирует исполнение скрипта.

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

Наконец, одна из самых распространенных ситуаций возникновения ошибки Internal Server Error - это содержание некорректных директив в файле.htaccess (кстати, при работе с движком WordPress это проявляется наиболее часто). Вот теперь мы вплотную подошли к поиску решения для каждой конкретной ситуации.

Ошибка Internal Server Error: как исправить простейшими способами

Для начала посмотрим, что можно сделать при обнаружении неправильных прав доступа. В данном случае позволяют редактировать содержимое абсолютно всем, что, несомненно, сказывается на безопасности. В такой ситуации необходимо их изменить, применив к папкам значение 755, к файлам скриптов - 600, а ко всем стальным файлам данных - 644.

При слишком долгой работе исполняемого скрипта можно попробовать увеличить время ожидания, правда, тут есть одна загвоздка. Такое решение может сработать на выделенном сервере или VPS (Virtual Private Server), а в случае никакого эффекта не будет.

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

Теперь несколько слов о файле.htaccess. Дело в том, что он предполагает использование очень строгого синтаксиса, если при проведении настроек были допущены ошибки или некоторые неточности, избежать появления ошибки Internal Server Error не удастся. Тут нужно поступить следующим образом. Для начала нужно проверить наличие самого файла в корневой директории сайта, после чего, сделав его резервную копию, удалить целиком и полностью. Если после такой процедуры сайт снова станет работоспособным, значит проблема именно в файле.htaccess, который придется проверить на наличие ошибок в синтаксисе.

Проблемы с движком WordPress

С WordPress дело обстоит хуже. Дело в том, что этот движок способен перезаписывать оригинальный файл.htaccess, отвечающий за управление доступом к файлам и папкам хостинга, а ведь оригинальный файл должен создаваться всего один раз, и тем более не в WordPress!

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

В некоторых случаях может потребоваться обновить WordPress до последней версии и отключить функцию перезаписи файла. Для начала скачиваем на компьютерный терминал оригинальный файл.htaccess, затем входим на сайте в папку по пути /wp-admin/includes/ с последующей загрузкой файла misc.php, который необходимо открыть, скажем, в стандартном «Блокноте» (или любом другом текстовом редакторе) и найти строку функции «function save_mod_rewrite_rules». Теперь в самой функции переходим к строке «return insert_with_markers($htaccess_file, "WordPress", $rules);» и заменяем ее на «return true;» (естественно, все команды прописываются без кавычек). Остается только сохранить изменения и загрузить новый файл на хостинг с заменой старого файла misc.php.

Недостатком такого метода является только то, что в данном случае отключается обновление WordPress. При подключении плагинов они работать, естественно, не будут.

Заключение

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

Пользуетесь FileZilla или другим подобным FTP менеджером? Тогда ошибка «HTTP ERROR 500 » может возникнуть по простой банальной причине. Нет, дело совсем не в том, что плохой FTP менеджер, можно просто сказать, что это небольшой баг, хотя багом его назвать сложно.

Такая ошибка (не всегда) может возникнуть, когда вы редактируете файлы напрямую через ту же FileZilla, правой кнопкой мыши – просмотр и правка . FTP менеджер каким то образом при правке файла изменяет права на файлы, к примеру на 777 . Хостинг или сервер в свою очередь, запрещает доступ к сайту, чтобы злоумышленник не мог нанести вред сайту, потому что с такими правами можно извне внедрить какой-нибудь скрипт на стороне сервера.

Решение проблемы довольно простое – вспомнить какой файл последний раз редактировали , это может быть файл вашей темы, header, например, посмотрите какие права у данного файла, должны стоять 644 . Даже если стоит такие атрибуты, все равно лучше попробуйте заменить данный файл на другой. Мне это помогло, заменил всего один header.php.

Права доступа на файлы и папки

Права доступа на файлы и папки должны быть такими:

  • Для папок – 755;
  • Для файлов – 644;
  • Для исполняемых скриптов – 600.

Как изменить права доступа на файлы и папки

Изменить права доступа на файлы и папки можно несколькими путями:

  1. Через FTP менеджером FileZilla, правой клик мыши – «права доступа к файлу»;
  2. Скачать файл на ПК и через Total Commander сменить права доступа, затем обратно закачать файл на хостинг;
  3. В большинстве хостингов можно редактировать права доступа, необходимо просто найти данный значок на панели управления и выделить файл к которому необходимо изменить права доступа.

Другие причины 500-той ошибки

  • Удалите файл «. htaccess », затем посмотрите исчезла ли ошибка «500». Возможно в этом файле содержатся директивы непонятные вашему серверу;
  • Долгая или бесконечная работа скрипта, из-за чего хостинг принудительно завершает работу и выводит на экран данную ошибку. На сервере по умолчанию установлен лимит на время ожидания выполнения скрипта, который можно увеличить при необходимости;
  • Слишком малое отведенное количество виртуальной памяти хостинга для совокупности сразу всех одновременно выполняющихся скриптов. Это второе ограничение и выделяется общее количество памяти не на один определенный PHP файл, а на все сразу.

Альтернативное решение проблем: На любом хостинге вы можете посмотреть лог ошибок, например, обычно он содержится в файле — error.log . Если в нём не разбираетесь, в решении проблем может помочь служба поддержки хостинга и направит вас в нужную сторону для решения ошибки «HTTP ERROR 500». Как видите, вам не обязательно разбираться в логах если у вас на

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

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



Рекомендуем почитать

Наверх