Что за ошибка 500 Internal Server Error и как её исправить
Разработчики и люди, профессионально работающие с веб-приложениями, боятся 500 Internal Server Error. Оптимальный способ её устранения зависит от сервера и того, что на нём запущено. В данной статье приводятся советы по диагностике и исправлению ошибки 500.
Важно помнить, что эта ошибка происходит на стороне сервера. Это значит, что HTML-код, выполняемый на стороне клиента, а также JavaScript или любые другие запущенные в браузере объекты, не могут быть источником ошибки 500 Internal Server Error. Само название (Internal Server Error – ‘внутренняя ошибка сервера’) говорит о том, что ошибка происходит на сервере.
Многие пользователи устанавливают на свой сервер популярные CMS-системы, такие как WordPress, Joomla, Drupal и они не должны вызывать ошибку 500, если всё настроено правильно. Однако она всё равно всплывает – из-за несовместимости версий, некачественных установок или сбоя прав доступа на сервере.
Вот некоторые распространённые проблемы, которые могут вызывать подобную ошибку в часто используемых CMS:
- Если вы только что обновили движок до новой версии, вероятно, обновление прошло с ошибками и необходимо провести его повторно. Скорее всего, на сайте разработчика есть инструкции, как это правильно сделать.
- Если вы только что активировали новый плагин или новую тему, стоит попробовать отменить эти изменения. Даже профессионально написанные плагины могут конфликтовать с другими и вызывать 500 Internal Server Error nginx
- Если вы обновляли CMS, старые плагины и темы могут быть с ней несовместимы. Единственное, что можно сделать в таком случае — отключать их по очереди, пока ошибка 500 не исчезнет.
- Неправильно заданные права доступа на сервере или ошибки в файле .htaccess. Серверу не удаётся получить доступ к скриптам, файлам и другим ресурсам, поэтому он выдаёт ошибку.
Когда причиной ошибки 500 Internal Server Error являются скрипты и плагины, лучше всего искать ответы на сайтах их разработчиков.
Другой причиной ошибки 500 Internal Server Error может стать разработка и тестирование собственных скриптов.
Чтобы справиться с такой ошибкой, попробуйте следующие решения:
- Настройка прав на сервере: часто неверная настройка прав доступа к файлу или папке приводит к тому, что сервер выдаёт ошибку 500 Internal Server Error. Из-за того, что ему не удаётся запустить скрипт. Выясните, какие права должны быть настроены, и выставьте их соответствующим образом.
- Превышено время ожидания: возможно, истекло время ожидания ответа от PHP или другого серверного скрипта. Это происходит из-за того, что недоступен определённый ресурс или коде была допущена ошибка, запускающая бесконечный цикл.
- Превышено время ожидания соединения с сервером: если сервер был занят, перезагружался или потерял соединение, скрипт может выдать ошибку 500 Internal Server Error. Возможно, в следующий раз ошибки не будет. Но если ошибка появляется при тестировании, велика вероятность того, что она встретится и пользователям.
- Ошибки в файле .htaccess: в некоторых случаях ошибку 500 может вызывать код, прописанный в файле .htaccess.
- Ошибки в скрипте: если ошибку выдаёт скрипт, можете запросить у него подробную информацию об ошибке. К примеру, в PHP можно включить вывод ошибок на экран или в лог-файл, добавив директиву display_errors. По умолчанию среда выполнения может скрывать ошибки, но это не очень удобно для отладки программы.
В некоторых случаях у разработчиков нет полного контроля над сервером.
Если скрипт запускается на сервере сторонней организации, она может помочь вам в следующем:
- Предоставить документацию о своём сервере и возможных причинах ошибки 500. В зависимости от используемой операционной системы и настройки оборудования, данная ошибка может возникать по разным причинам.
- Попросите службу поддержки хостинга посмотреть лог-файлы с ошибками — системный администратор сможет определить, был ли сервер во время возникновения ошибки загружен или вовсе «упал».
500 Internal Server Error — как исправить? В большинстве случаев причины возникновения ошибки 500 легко исправляются. Проблема заключается в том, что без конкретной информации определение причины возникновения сбоя усложняется. Легче всего справиться с ошибкой, когда разработчик выяснит, что изменилось перед возникновением ошибки.
Не забывайте, что произошедшие изменения могли быть осуществлены и другими людьми — например, администратором сервера. Если же ничего не менялось, вероятно, сам сервер стал причиной возникновения ошибки из-за несовместимости программного обеспечения или проблем с производительностью.
Данная публикация представляет собой перевод статьи «500 Internal Server Error: What It Is And How To Fix It» , подготовленной дружной командой проекта Интернет-технологии.ру
www.internet-technologies.ru
Ошибка 500 — внутренняя ошибка сервера (500 internal server error), как ее исправить.
Внутренняя ошибка 500 — Internal Server Error
Значение 500 — код статуса протокола HTTP. Причина ошибки с таким кодом — неисправность конфигурации сервера, либо появление информации о том, что произошел отказ компонента. При ошибке 500 программное обеспечение работает, но есть серьезные внутренние проблемы, которые мешают запросам правильно обрабатываться.
Такая ошибка появляется у построенных на разных CMS сайтах.
Причины возникновения 500 ошибки сервера и способы их исправить
Ошибка 500 — внутренняя, поэтому если она возникла на нужном для просмотра сайте, то можно только посетить его позже, когда восстановят работоспособность.
Причин, по которым появляется ошибка 500 — огромное количество. Задача сводится к поиску и устранению неисправности.
Виртуальный хостинг сайтов для популярных CMS:
Неправильные права доступа
Частая причина возникновения ошибки – установка неправильных прав доступа на файлы скриптов — 777. Из-за этого они блокируются сервером. Такая настройка разрешает всем вносить изменения в файл, что недопустимо с точки зрения обеспечения безопасности. В случае, когда требуется установить такие права, поставщик всегда сообщает об этом заранее.
Как исправить?
С помощью файлового менеждера (на скриншоте — бесплатная программа FileZilla) просмотреть права доступа к файлу или папке на сервере.
В первую очередь надо проверить, каким образом настроены права доступа. Для каждого типа элементов они проверяются индивидуально. Для папок рекомендуется значение 755, для скриптов — 600, а для других файлов — 644.
Оптимальное решение — один человек. который может управлять аккаунтом. Не желательно давать кому-либо права доступа к корневым папкам сайта.
Высокая длительность работы скрипта
Помимо PHP ограничений на время, за которое должен завершить работу скрипт, ограничения есть и от сервера. Появление ошибки возможно, когда нет ответа за указанный в конфигурации промежуток времени. По этой причине работа скрипта будет автоматически прекращена.
Как исправить?
Решение проблемы заключается в оптимизации работы скрипта. Можно использовать специальные сервисы, которые помогают найти медленный участок кода. Если используется выделенный сервер или VPS, можно увеличить промежуток времени ожидания сервера. Маловероятно, что удастся изменить этот параметр при использовании виртуального хостинга. Это возможно только при согласии технической поддержки.
Ошибки htaccess
У файла «.htaccess» определен строгий синтаксис, который нельзя нарушать. Если в нем написаны ошибочные директивы, то это приведет к появлению ошибки 500. Возможно, директива написана правильно, но не поддерживается.
Как исправить?
В корневой папке сайта нужно поискать файл «.htaccess». Если он нашелся, то нужно скопировать его, чтобы не потерять, а затем удалить из папки. После этой процедуры сайт может заработать. В таком случае станет точно известно, что причина была в этом файле. Затем нужно исправить файл (самый простой способ — добавить файл из чистого дистрибутива используемой системы управления сайтом).
Кроме того, есть возможность посмотреть сведения о появившихся ошибках. Ошибки сервера заносятся в специальный файл «error.log». В нем нужно найти строки о том, какая из директив ошибочна. Например, информация «Invalid command ‘RewritRule’» говорит о том, что директива «RewritRule» написана с опечаткой. Исправление на «RewriteRule» убирает эту ошибку.
Нехватка памяти для работы кода
На виртуальном хостине контролируется, какое количество памяти потребляет скрипт. В случае, когда скрипт хочет использовать слишком много памяти, возможно появление сообщения об ошибке 500.
Эта функция предотвращает большую нагрузку на сервер со стороны каждого аккаунта.
Как исправить?
В первую очередь следует определить, нет ли в коде ошибок, за счет которых он требует слишком много памяти. Если скрипт работает правильно, то начать решение проблемы можно с общения с сотрудниками технической поддержки. В некоторых случаях они помогают разрешить этот вопрос. Мы не обязываем клиента переходить на дорогой тариф из-за нехватке памяти, для решения проблемы можно за небольшую плату увеличить кол-во памяти на текущем тарифном плане.
Ошибка в cgi скрптах
Ошибка 500 чаще появляется из-за ошибок в «htaccess», но еще одна её причина – неправильная работа с CGI-скриптами.
Как исправить?
Существует три основных правила, которые могут быть нарушены.
- Формат окончания каждой из строк — UNIX (n), а не Windows (rn). Для обеспечения такого условия их загрузка проводится по FTP в режиме ASCII.
- Права доступа для скриптов CGI и папок, где они хранятся — 0755. Такая настройка разрешает процедуру записи исключительно владельцу, чтоб правильно с позиции безопасности.
- При работе скрипта CGI могут появиться неправильные HTTP-заголовки ответа. Следует проанализировать содержимое файла «error log» на предмет ошибок.
Ошибка 500 при использовании WordPress
В первую очередь рекомендуется определить, имеет ли файл «.htaccess» отношение к возникновению неисправности. Для этого выполнить его резервное копирование, удалить, а затем обновить страницу. Если сайт после этого работает, значит причина найдена и осталось исправить файл.
Файл «.htaccess» используется WordPress в случае, когда обычная структура ссылок была изменена на ЧПУ. Помимо этого, его используют плагины WordPress, которые осуществляют резервное копирование и некоторые другие функции.
Чаще всего файл «.htaccess» создается однократно, но в WordPress это происходит регулярно. Если в файл заносится ошибка, то хостинг считает его поврежденным и появляется «ошибка 500». Записывать лишние данные, которые воспринимаются как повреждения, могут:
- движок;
- тема;
- плагины, которые активированы.
Если приведенные методы не помогли, то в качестве крайнего варианта можно отключить функцию wordpress, которая создает и переписывает файл «.htaccess». Этот метод подходит только как временная мера, поскольку вызывает проблемы при активации плагинов.
Мы предлагаем бесперебойный WordPress хостинг, оптимизированный под создание сайтов на этой CMS.Поочередная проверка элементов позволяет отследить, какой из них — причина ошибки. В процессе поиска неисправности постоянно проверяют, не исчезает ли ошибка 500:
- сменить тему и проверить наличие ошибки;
- по очереди деактивировать плагины и следить за изменениями;
- поиск ошибок в сторонних скриптах;
- поиск проблемы в движке WordPress.
Сбои плагина иногда видно по искажению внешнего вида сайта. Возможно наличие ошибок в работе конкретного плагина или его конфликт с остальными.
Если файл «.htaccess» – не причина проблемы, нужно убедиться, что скрипты работают с нормальной скоростью. Поиск медленно работающиех скриптов можно выполнить самостоятельно, либо попросить помощи у специалистов службы технической поддержки. Файл с обнаруженной ошибкой и временем ее появления отражается в файле «Error Log».
В WordPress частые причины ошибки — файлы плагинов или тем. Можно деактивировать плагин и применить новый. Если причиной неисправности оказалось ядро WordPress, потребуется обновление.
На хостинге выделяется определенный объем оперативной памяти для использования. Ошибка 500 появится и из-за превышения этого допустимого значения. В админ-панели можно убедиться, не превысил ли сайт этот лимит. Там приведены сведения о уровне загруженности сервера. В файле с перечнем появляющихся ошибок видно, какой из файлов вызвал чрезмерную загрузку. Его придется обновить или удалить, если это допустимо.
Увеличить объем памяти возможно путем корректирования файла. В корне хостинга нужно найти «wp.config.php» и после последней строки добавить в него код:«define(‘WP_MEMORY_LIMIT’, ’64M’».
В ряде случаев помогает обновление WordPress до последней версии.
Ошибка 500 при входе в административную панель Joomla
Ошибка 500 иногда возникает после ввода логина и пароля для панели администрирования Joomla – «админки». При этом работоспособность сайта сохраняется. Код ошибки не указывает на конкретную проблему, поэтому требуется её самостоятельный поиск.
Как исправить?
В журнале ошибок хранятся сообщения об ошибках. Он называется «error.php» и лежит в каталоге «logs». При поиске ошибок, которые появились недавно, важно обратить на последние записи в этом файле. Там содержатся сведения о нарушениях в работе модулей, если они происходили.
Другая вероятная причина ошибки — невозможность записи в каталоги «logs» и «tmp». Возможно, потребуется установка полных прав для этих каталогов – 777.
Рекомендуется проверить правильность путей к каталогам «logs» и «tmp» в файле конфигурации «configuration.php». Желательно указать полные пути к этим каталогам.
Если проблема сохраняется, рекомендуется проверить корректность файла «htaccess» и по очереди отключить и включить все логины и плагины через базу данных. В «htaccess» возможны ошибки, опечатки и лишняя информация. Например, ошибка 500 появляется из-за того, что не закомментирована строка Options +FollowSymLinks. При редактировании файла можно не удалять, а комментировать строки и проверять, как изменяется после этого работа сайта.
Если решить проблему самостоятельно не удается, потребуется обращение в службу технической поддержки.
www.ipipe.ru
Ошибка 500 и отчего возникает (Internal Server Error)
Ошибка внутреннего внутреннего сервера 500 (например, ошибка HTTP 500) является общей ошибкой, указывающей на проблему с сервером веб-сайта. Вот что вы можете с этим поделать.
Автор: GeekciferХаттабр
Опубликовано ,
ПоделисьС ДРУЗЬЯМИ
15,624
Просмотров
Внутренняя ошибка сервера 500 — это очень общий код состояния HTTP, код означающий, что на сервере сайта что-то пошло не так, но сервер не может быть более конкретным в отношении точной проблемы. То есть сервер не может дать вам точный ответ что пошло не так!
Вы — веб-мастер? Смотрите « Исправление ошибок внутреннего сервера» на вашем собственном сайте в нижней части страницы для получения более подробных рекомендаций, в том случае если вы видите 500 Internal Server Error на одной или нескольких ваших собственных страницах.
Сообщение об ошибке внутреннего сервера 500 можно увидеть любым количеством способов, поскольку каждому веб-сайту разрешено настраивать сообщение.
Вот несколько распространенных способов, с помощью которых можно увидеть ошибку HTTP 500:
2. Как вы можете увидеть ошибку 500
500 — внутренняя ошибка сервера
HTTP 500 — Внутренняя ошибка сервера
Временная ошибка (500)
Внутренняя ошибка сервера
Внутренняя ошибка HTTP 500
500 Ошибка
Ошибка HTTP 500
500. Это ошибка
Так как на веб-сайте, который вы посещаете, генерируется 500 внутренних ошибок сервера, вы можете увидеть их в любом браузере в любой операционной системе , даже на вашем смартфоне.
В большинстве случаев в окне интернет-браузера отображается внутренняя ошибка сервера 500, как это делают веб-страницы.
3. Причина ошибок HTTP 500
Как я уже упоминал выше, сообщения об ошибках внутреннего сервера показывают, что что-то, в общем, неверно.
В большинстве случаев «неправильный» означает проблему с программированием страницы или сайта, но, безусловно, есть вероятность, что проблема на вашем конце, что мы рассмотрим ниже.
Примечание. Более конкретная информация о причине конкретной ошибки HTTP 500 часто предоставляется, когда она возникает на сервере с использованием программного обеспечения Microsoft IIS. Ищите номера после 500 , как в HTTP-ошибке 500.19 — Внутренняя ошибка сервера , что означает, что данные конфигурации недействительны . См. Дополнительные способы, по которым вы можете увидеть внутреннюю ошибку сервера ниже для полного списка.
4. Как исправить ошибку внутреннего сервера 500
Как я уже упоминал выше, 500 Internal Server Error представляет собой ошибку на стороне сервера , что означает, что проблема, вероятно, связана не с вашим компьютером или интернет-соединением, а с сервером веб-сайта.
Хотя это и не вероятно, возможно , что с вашей стороны тоже что-то не так, и в этом случае мы рассмотрим некоторые вещи, которые вы можете попробовать:
- 1. Перезагрузите страницу. Вы можете сделать это, нажав кнопку обновления / перезагрузки, нажав F5 или Ctrl-R или повторив URL-адрес из адресной строки.
Даже если проблема 500 Internal Server Error является проблемой на веб-сервере, проблема может быть просто временной. Повторное повторение страницы часто проходит успешным.
Примечание. Если во время процесса проверки у онлайн-продавца появляется сообщение 500 Internal Server Error, имейте в виду, что повторные попытки проверки могут привести к созданию нескольких заказов — и нескольких сборов! У большинства продавцов есть автоматическая защита от таких действий, но это все равно то, о чем нужно помнить.
- 2. Очистите кеш браузера. Если есть проблема с кэшированной версией просматриваемой страницы, это может вызвать проблемы с HTTP 500.
Примечание. Ошибки внутреннего сервера часто возникают из-за проблем с кешированием, но иногда я вижу, что ошибка исчезла после очистки кеша. Это такая легкая и безобидная вещь, чтобы не попробовать, поэтому не пропустите ее.
- 3.Удалите файлы cookie вашего браузера. Некоторые проблемы с внутренней ошибкой 500 могут быть исправлены путем удаления файлов cookie, связанных с сайтом, на котором вы получаете ошибку.
После удаления файлов cookie перезагрузите браузер и повторите попытку.
- 4. Вместо этого устраните ошибку как 504 Gateway Timeout.
Это не очень распространено, но некоторые серверы производят 500 внутренних ошибок сервера, когда на самом деле более подходящее сообщение, основанное на причине проблемы, составляет 504 Gateway Timeout.
- 5. Другим вариантом является прямой контакт с веб-сайтом. Скорее всего, администраторы сайта уже знают об ошибке 500, но если вы подозреваете, что они этого не знают, сообщите им, так они помогут вам и себе (и всем остальным).
См. Страницу контактной информации для связи с владельцами ресурса для популярных веб-сайтов. На большинстве сайтов есть учетные записи социальных сетей на основе поддержки, а некоторые даже имеют номера электронной почты и телефонов.
Совет. Если это похоже на то, что сайт полностью отключен, и вы не можете найти способ сообщить об ошибке «Внутренняя ошибка сервера 500» на веб-сайт, это может помочь вашему здравомыслию идти в ногу с отключением в Twitter. Обычно вы можете сделать это, выполнив поиск #websitedown в Twitter, как в #gmaildown или #facebookdown .
- 6. Вернуться позже. К сожалению, на данный момент 500 Internal Server Error, без сомнения, является проблемой вне вашего контроля, которая в конечном итоге будет исправлена кем-то другим.
Если сообщение 500 Internal Server Error появляется во время покупки в Интернете, это может помочь понять, что продажи, вероятно, нарушены — обычно это большой стимул для интернет-магазина, чтобы быстро решить проблему!
Даже если вы получаете ошибку 500 на сайте, который ничего не продает, например YouTube или Twitter, если вы сообщите им об этой проблеме или, по крайней мере, попробуете, вы можете сделать немного больше, чем просто ждать.
5. Исправление ошибки 500 внутреннего сервера на вашем сайте
Внутренняя ошибка сервера 500 на вашем собственном веб-сайте требует совершенно иного действия. Как я уже упоминал выше, большинство 500 ошибок являются ошибками на стороне сервера, а это означает, что, скорее всего, ваша проблема будет исправлена, если это ваш сайт.
Существует множество причин, по которым ваш сайт может показывать errors 500 вашим пользователям, но эти наиболее распространены:
- Ошибка разрешений. В большинстве случаев ошибка 500 внутренних серверов связана с неправильным разрешением одного или нескольких файлов или папок. В большинстве случаев виновато неправильное разрешение на скрипт PHP и CGI . Обычно они должны быть установлены в 0755 (-rwxr-xr-x).
- Тайм-аут PHP (PHP Timeout). Если ваш скрипт подключается к внешним ресурсам и тайм-ауту этих ресурсов, может возникнуть ошибка HTTP 500. Правила тайм-аута или лучшая обработка ошибок в вашем скрипте должны помочь, если это является причиной ошибки 500.
- Ошибка кодирования в .htaccess. Хотя это не так часто, убедитесь, что файл .htaccess вашего сайта правильно структурирован.
Если вы используете WordPress , Joomla или другое управление контентом или систему CMS, обязательно выполните поиск в своих центрах поддержки, чтобы получить более конкретную помощь по устранению ошибки 500 Internal Server Error, также может помочь обновление версии движка.
Если вы не используете готовый движок, ваш веб-хостинг-провайдер, вероятно, имеет на своем сайте форум или страницу с ответами, где есть ответ на ошибку 500 или другие которые могут быть более конкретными для вашей ситуации.
6. Дополнительные способы просмотра внутренней ошибки сервера
В Internet Explorer сообщение, на котором веб-сайт не может отображать страницу, часто указывает на ошибку внутреннего сервера HTTP 500. Ошибка 405 Method Not Allowed — еще одна возможность, но вы можете быть уверены, ища 500 или 405 в заголовке IE.
Когда службы Google, такие как Gmail или Google+, испытывают 500 — внутренняя ошибка сервера, они часто сообщают о временной ошибке (500) или просто 500 .
Когда Центр обновления Windows сообщает о внутренней ошибке сервера, и она отображается как сообщение WU_E_PT_HTTP_STATUS_SERVER_ERROR или как код ошибки 0x8024401F .
Если на веб-сайте, который сообщает об ошибке 500, работает Microsoft IIS, вы можете получить более конкретное сообщение об ошибке:
500,0 — Возникла ошибка модуля или ISAPI.
500,11 — Приложение закрывается на веб-сервере.
500,12 — Приложение перезагружается на веб-сервере.
500,13 — Веб-сервер слишком занят.
500,15 — Прямые запросы для Global.asax запрещены.
500,19 — Неверные данные конфигурации.
500,21 — Модуль не распознан.
500,22 — Конфигурация httpModules ASP.NET не применяется в режиме управляемого канала.
500,23 — Конфигурация ASP.NET httpHandlers не применяется в режиме управляемого канала.
500,24 — Конфигурация олицетворения ASP.NET не применяется в режиме управляемого канала.
500,50 — Во время обработки уведомлений RQ_BEGIN_REQUEST произошла ошибка перезаписи. Произошла ошибка выполнения конфигурации или входящего правила.
500,51 — Ошибка перезаписи произошла при обработке уведомлений GL_PRE_BEGIN_REQUEST. Произошла глобальная ошибка выполнения конфигурации или глобального правила.
500,52 — При обработке RQ_SEND_RESPONSE произошла ошибка перезаписи.Выполнено выполнение исходящего правила.
500,53 — Во время обработки уведомлений RQ_RELEASE_REQUEST_STATE произошла ошибка перезаписи. Произошла ошибка выполнения исходящего правила. Правило настроено для выполнения перед обновлением кэша выходных пользователей.
500,100 — Внутренняя ошибка ASP.
Более подробную информацию об этих кодах, относящихся к IIS, можно найти в коде состояния HTTP HTTP на страницах IIS 7.0, IIS 7.5 и IIS 8.0 .
Ошибки Как ошибка HTTP 500
Многие сообщения об ошибках в браузере похожи на сообщение «Внутренняя ошибка сервера 500», потому что все серверные ошибки, и на такие как 502 Bad Gateway , 503 Service Unavailable и 504 Gateway Timeout .
Также существует множество кодов статуса HTTP на стороне клиента, например, популярная ошибка 404 Not Found . Вы можете увидеть их все в моих списках ошибок кода состояния HTTP .
geekcifer.ru
Ошибка 500 internal server error Nginx
При разработке веб-сайтов и веб-приложений можно столкнуться с ошибкой 500 internal server error. Сначала она может испугать и ввести в заблуждение, поскольку обычно веб-сервер выдает более конкретные ошибки, в которых указана точная причина проблемы, например, превышено время ожидания, неверный запрос или файл не найден, а тут просто сказано что, обнаружена внутренняя ошибка.
Но не все так страшно и в большинстве случаев проблема вполне решаема и очень быстро. В этой статье мы разберем как исправить ошибку Internal server error в Nginx.
Содержание статьи:
Как исправить 500 internal server error Nginx
Дословно Internal server error означает внутренняя ошибка сервера. И вызвать её могут несколько проблем. Вот основные из них:
- Ошибки в скрипте на PHP — одна из самых частых причин;
- Превышено время выполнения PHP скрипта или лимит памяти;
- Неправильные права на файлы сайта;
- Неверная конфигурация Nginx.
А теперь рассмотрим каждую из причин более подробно и разберем варианты решения.
1. Ошибка в скрипте PHP
Мы привыкли к тому, что если в PHP скрипте есть ошибки, то сразу же видим их в браузере. Однако на производственных серверах отображение сообщений об ошибках в PHP отключено, чтобы предотвратить распространение информации о конфигурации сервера для посторонних. Nginx не может отобразить реальную причину ошибки, потому что не знает что за ошибка произошла, а поэтому выдает универсальное сообщение 500 internal server error.
Чтобы исправить эту ошибку, нужно сначала понять где именно проблема. Вы можете включить отображение ошибок в конфигурационном файле php изменив значение строки display_errors с off на on. Рассмотрим на примере Ubuntu и PHP 7.2:
vi /etc/php/7.2/php.ini
display_errors = On
Перезапустите php-fpm:
sudo systemctl restart php-fpm
Затем обновите страницу и вы увидите сообщение об ошибке, из-за которого возникла проблема. Далее его можно исправить и отключить отображение ошибок, тогда все будет работать. Ещё можно посмотреть сообщения об ошибках PHP в логе ошибок Nginx. Обычно он находится по пути /var/log/nginx/error.log, но для виртуальных доменов может настраиваться отдельно. Например, смотрим последние 100 строк в логе:
tail -n 100 -f /var/log/nginx/error.log
Теперь аналогично, исправьте ошибку и страница будет загружаться нормально, без ошибки 500.
2. Превышено время выполнения или лимит памяти
Это продолжение предыдущего пункта, так тоже относится к ошибкам PHP, но так, как проблема встречается довольно часто я решил вынести её в отдельный пункт. В файле php.ini установлены ограничения на время выполнения скрипта и количество оперативной памяти, которую он может потребить. Если скрипт потребляет больше, интерпретатор PHP его убивает и возвращает сообщение об ошибке.
Также подобная ошибка может возникать, если на сервере закончилась свободная оперативная память.
Если же отображение ошибок отключено, мы получаем error 500. Обратите внимание, что если время ожидания было ограничено в конфигурационном файле Nginx, то вы получите ошибку 504, а не HTTP ERROR 500, так что проблема именно в php.ini.
Чтобы решить проблему увеличьте значения параметров max_execution_time и memory_limit в php.ini:
sudo vi /etc/php/7.2/php.ini
max_execution_time 300
memory_limit 512M
Также проблема может быть вызвана превышением других лимитов установленных для скрипта php. Смотрите ошибки php, как описано в первом пункте. После внесения изменений в файл перезапустите php-fpm:
sudo systemctl restart php-fpm
3. Неверные права на файлы
Такая ошибка может возникать, если права на файлы, к которым обращается Nginx установлены на правильно. Сервисы Nginx и php-fpm должны быть запущены от имени одного и того же пользователя, а все файлы сайтов должны принадлежать этому же пользователю. Посмотреть от имени какого пользователя запущен Nginx можно командой:
nginx -T | grep user
Чтобы узнать от какого пользователя запущен php-fpm посмотрите содержимое конфигурационного файла используемого пула, например www.conf:
sudo vi /etc/php-fpm.d/www.conf
В моем случае это пользователь nginx. Теперь надо убедится, что файлы сайта, к которым вы пытаетесь обратиться принадлежат именно этому пользователю. Для этого используйте команду namei:
namei -l /var/www/site
Файлы сайта должны принадлежать пользователю, от имени которого запущены сервисы, а по пути к каталогу с файлами должен быть доступ на чтение для всех пользователей. Если файлы принадлежат не тому пользователю, то вы можете все очень просто исправить:
sudo chown nginx:nginx -R /var/www/site
Этой командой мы меняем владельца и группу всех файлов в папке на nginx:nginx. Добавить права на чтение для всех пользователей для каталога можно командой chmod. Например:
sudo chmod o+r /var/www/
Далее все должно работать. Также, проблемы с правами может вызывать SELinux. Настройте его правильно или отключите:
setenforce 0
Выводы
В этой статье мы разобрали что делать если на вашем сайте встретилась ошибка 500 internal server error nginx. Как видите проблема вполне решаема и в большинстве случаев вам помогут действия описанные в статье. А если не помогут, напишите свое решение в комментариях!
losst.ru
Способы решения ошибки HTTP 500 Internal server error
При плохой системной конфигурации,работа сервера может пойти наперекосяк,и тогда 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 находится в этом каталоге.
# Различные правила перезаписи.
<IfModule mod_rewrite.c>
RewriteEngine on
++++++++++++++++++++++
#Если ваш сайт работает в VirtualDocumentRoot на http://example.com/,
# раскомментируйте следующую строку:
RewriteBase / <-удалить хэш (#)
4 — ошибки PHP
Иногда,когда PHP-скрипт обнаруживает ошибку,либо из-за истечения времени ожидания или синтаксическая проблема,или что-то ещё хуже,как логическую проблему, он *может* выдать триггер 500 внутренняя ошибка сервера. Он может выдавать эту ошибку не всегда, но может.
5 — плохое содержание configure.php
Если URL-адреса или пути,или что-нибудь ещё,находятся в вашем файле configure.php -это информация для другого сервера,или не правильно для *вашего* server,то для многих как ни странно,могут возникнуть проблемы, в том числе, возможно и ошибка 500. Однако, как правило,это будут очень разные симптомы.Просто убедитесь, что Вы не скопировали файлы configure.php с одного сервера на другой, даже localhost.
kompkimi.ru
что значит эта ошибка на сайте и как ее исправить
Положительная репутация в поисковых системах без помех от недоброжелателей возможна с Семантикой!
Мы выпустили новую книгу «Контент-маркетинг в социальных сетях: Как засесть в голову подписчиков и влюбить их в свой бренд».
Подпишись на рассылку и получи книгу в подарок!
Ошибка 500 на сайте — одна из часто встречаемых ошибок для пользователей WordPress.
Больше видео на нашем канале — изучайте интернет-маркетинг с SEMANTICA
500 ошибка сервера, как правило, является внутренней. Это значит, что ее решение зависит от собственника интернет-ресурса или его провайдера интернета.
Разберем, что значит ошибка 500 на простом примере из жизни. Вы решили побаловать себя обновкой и отправились за ней в торговый центр. Вы подходите к ТЦ и видите, что он закрыт, хотите зайти с заднего входа и видите табличку «Закрыто. Ведутся санитарные работы». Значит, сегодня вы сюда не попадете, нужно искать другой магазин. Подобный механизм действия и с сайтами, периодически в их работе возникают ошибки, и ресурс закрывается до устранения проблем.
Почему появляется ошибка 500 Internal Server Error
Если ресурс выдает ошибку 500, причин для этого может быть очень много и определить их не так просто. Например, с ошибкой 404 все более-менее понятно: дело в измененных URL страницы или же сломаны permalinks.
Код ответа сервера 500 может быть вызван:
- повреждением .htaccess файлов;
- задержкой скрипта;
- неправильным обновлением системы WordPress;
- некорректно установленными плагинами;
- устаревшей версией PHP.
Это далеко не все, чтобы докопаться до правды, нужно провести глубокую диагностику и выяснить, в чем же дело. Лучше всего восстановить последовательность совершенных шагов от моменты входа до момента появления ошибки. Нужно вспомнить, какие были внесены изменения в работу WordPress, что именно могло привести к тому, что появился код ошибки 500. Выяснение причины значительно облегчает процесс восстановления.
Как исправить Ошибку 500
Есть несколько вариантов решения имеющейся проблемы.
Наиболее распространенная причина — один из скриптов не успевает своевременно обрабатывать поток информации. Чтобы устранить код сервера 500, нужно вручную сделать оптимизацию процесса. Чтобы найти медленно работающий скрипт, можно воспользоваться специализированными сервисами.
Следующий метод основывается на том, что проблема кроется в некорректной настройке и работе файлов .htaccess. Написание .htaccess файлов — задача для профессионала. Простой пользователь с этим не справится. Поэтому лучше обратиться за помощью к специалисту.
И третий сценарий возникновения поломки — использование объемного скрипта, который требует для нормального функционирования слишком много места. Здесь можно либо отказаться от такого скрипта, либо перейти на другой тариф и тем самым расширить лимит памяти.
Часто владельцы сайтов решают сэкономить и делают выбор в пользу дешевого, но не надежного хостинг-провайдера. Это также может привести к возникновению ошибки 500. Поэтому перед созданием интернет-ресурса лучше ознакомиться не только с расценками хостингов, но и отзывами о них, функциональными возможностями.
semantica.in
Ошибка 500 Internal Server Error: исправляем проблему
Ошибка 500 internal server error– внутренняя ошибка сервера, говорящая о неработоспособности какого-либо из его компонентов. В сообщении об ошибке не указывается конкретная проблема и не предлагаются способы её решения. Ситуация описывается в целом: сервер работает, но в его конфигурации или в каком-то малозначимом скрипте допущена фатальная ошибка, из-за которой обработка запросов невозможна и сервер не отвечает.
Ошибка может возникнуть практически на любом сайте. Не важно, написан сайт на простом движке или построен на базе мощной CMS, решающую роль тут играет качество администрирования сервера и аккуратность самого веб-мастера при вмешательстве в его настройки. Не редко ошибка появляется после добавления на сайт нового модуля или банального обновления CMS.
Для веб-мастера это одна с самых нежелательных ошибок. В плане оптимизации она грозит резкой потерей позиций, а оперативно ее исправить не всегда является возможным. Если не устранить проблему до того, как будет исчерпан лимит доверия ПС, возможен полный, хоть и временный, вылет из выдачи. При этом нельзя сразу определить, чем вызваны неполадки на стороне сервера и быстро решить проблему. Приходится перебирать распространенные варианты и, что называется, искать иголку в стоге сена. Как правило, ошибка 500 возникает после неумелого вмешательства в настройки сервера: порой причиной становится едва заметная ошибка в коде.
Существует ряд распространенных причин и шаблонных методов решения. Однако, они подойдут далеко не во всех случаях. Если глубокого вмешательства в конфигурацию сервера не производилось, возможно, ошибка обусловлена следующими причинами:
- Долгое выполнение скрипта
- Превышение лимита оперативной памяти
- Синтаксическая ошибка в .htaccess
- Неправильные права доступа у файлов
Методы решения
Превышение лимитов
Первым делом нужно проверить, нет ли на сайте скриптов, которые слишком долго выполняются. Стоит помнить, что абсолютно все хостинг-провайдеры устанавливают жесткие ограничения на время выполнения, чтобы снизить нагрузку на собственные сервера. Если скрипт на сайте «долго думает», его просто завершают, дабы не страдали другие сайты на сервере. Результат принудительного завершения – ошибка с кодом 500. Если веб-мастер имеет непосредственный доступ к серверу, на котором расположен сайт, выявить скрипты с долгим выполнением будет легко. Достаточно отследить время выполнения каждого и найти нужный, возможно, он будет не один. А если удалять найденный скрипт никак нельзя, не будет проблемой поднять лимит на время выполнения в конфигурации сервера. Другой случай, если сайт расположен на виртуальном хостинге: без помощи технической поддержки решить проблему не удастся. Однако, администрация большинства хостингов редко идет на встречу – скорее всего, владельцу просто предложат перейти на тариф подороже.
Помимо лимита на время, существует и лимит оперативной памяти, которая доступна для выполнения скрипта. Если сайт построен на базе сложного и тяжелого движка с массой различных функций, наверняка, он будет резервировать для своей работы довольно большой объем ОЗУ сервера. Естественно, на хостинге она не бесконечная. Если вы используете бюджетное решение то на одном сервере администрация хостинга может размещать несколько сотен сайтов, поэтому если какой-то один будет потреблять много ресурсов, все остальные начнут работать гораздо медленнее. Лимит памяти так же, как и временной, указывается в конфигурации сервера. Имея прямой доступ, лимит можно повысить. Если же доступа к серверу нет, придется просить администрацию найти «прожорливый» скрипт и сообщить о нем владельцу. После нахождения тяжелого скрипта можно попытаться его оптимизировать, обратившись к программисту или самостоятельно удалив из кода ненужный функционал.
Ошибка в .htaccess
Файл .htaccess в корне сайта – важнейший конфигуратор после настроек самого сервера. Синтаксис этого файла очень строг и не допускает никаких ошибок, обычно его составляют с помощью специальных сервисов или пользуются тем, которые предлагает хостер. Если незадолго до появления ошибки с кодом 500 в этот файл собственноручно вносились изменения, можно быть уверенным, что проблема именно в нем. Возможно, веб-мастер добавил в него неправильные команды, директивы, или неподдерживаемые сервером логические конструкции.
Можно попробовать просто удалить данный файл и посмотреть на результат, так как его наличие не обязательно, это не должно повлиять на работу сайта. Если после удаления ошибка 500 исчезла, нужно восстановить файл и начать поиск ошибки. Найти ошибку в .htaccess можно с помощью специального лог-журнала “error.log“ в панели управления, не редко хостеры предоставляют к нему доступ. В данный журнал записываются все произошедшие во время работы ошибки, наверняка, через него получится узнать причину. В случае, если .htaccess содержит неправильную директиву, журнал должен содержать примерно такой лог:
Из данного лога следует, что проблема вызвана директивой “RewritRule”. Это очевидная синтаксическая ошибка. Название директивы было напечатано неправильно – пропущена одна буква – вместо “RewtiteRule” получилось “RewritRule”, соответственно, вся конструкция оказалась неверной. Файл .htaccess не допускает даже столь незначительных огрехов, выдавая ошибку с кодом 500.
Неправильные права доступа
Из-за неправильно выставленных прав доступа скрипт может не работать. Однако, ошибка 500 возникает в противоположном случае: если скрипт имеет излишне высокие права с кодом 777. Объясняется это мерой безопасности самого сервера. Редкому скрипту по-настоящему нужны абсолютные права, между тем, такой скрипт может оказаться вредоносным шеллом, который встроит в сайт ненужный код или вовсе удалит все расположенные на сервере файлы вместе с ним самим, выполнив команду -rm -rf. Если уж и решаться заливать на сайт php-файл с правами 777, то только от очень проверенного разработчика, сомнений в добросовестности которого нет. Кроме того, зачастую сами хостеры блокируют возможность выдачи файлам абсолютных прав, что, несомненно, правильно.
Для решения проблемы нужно проверить все файлы своего сайта и найти среди них те, у которых установлены права 777. Выявив все, нужно понизить права по следующему принципу:
Директории – 755
Для активных скриптов – 600
Для обычных файлов – 644
В серверный файловых менеджерах с GUI интерфейсом установка прав выполняется в контекстном меню:
Крайне редко встречаются скрипты, для работы которых нужны права 777. Если это необходимо, разработчик заранее об этом предупредит, однако, даже в этом случае хостер вряд ли позволит разместить у себя такой файл.
Если после выполненных действий ошибка 500 не исчезла, следует обратиться к системному администратору с глубоким знанием принципа работы сервера или в техническую поддержку хостера. Как говорилось ранее, причин возникновения серверной ошибки очень много.
Рейтинг статьи: Tweet
seooki.ua