Что значит ошибка сервера 500
Причины внутренней ошибки сервера «500» и способы её решения
Сейчас читают:
В некоторых случаях, при попытке перейти на нужный интернет-ресурс, браузер выдает системное сообщение (статус) с кодом «500», о котором свидетельствует надпись «500 Internal Server Error» («500 внутренняя ошибка сервера»).
Код ошибки означает внутренние проблемы с сервером, которые необходимо диагностировать. Произошел сбой работы или нарушена конфигурация системы.
В случае подобной ошибки не обязательно сразу писать в техническую поддержку. Можно попробовать решить эту проблему самостоятельно.
Внутренняя ошибка сервера не всегда свидетельствует о сбое сервера, поскольку указывает на результат, к которому могут привести разные причины.
Что способствует возникновению ошибки 500
Как диагностировать ошибку 500
Для диагностики внутренней ошибки сервера с кодом 500 необходимо проверить содержимое файла « error.log », находящийся в корне сайта или в каком-либо другом месте, которое зависит от настроек сервера.
Способ доступа к файлу зависит от того, находится ли сайт на веб-хостинге или размещён на выделенном/физическом сервере.
Этот метод позволяет выяснить причину возникновения ошибки и за короткий промежуток времени устранить ее. После проведения диагностики можно воспользоваться одним из нижеописанных способов решения проблемы.
Права доступа к директориям и файлам
Отсутствие необходимых прав доступа к объектам файловой системы (директориям и файлам) довольно часто приводит к ошибке со статусом «500». При переносе сайта на другой хостинг или изменении его структуры (добавлении новых элементов) пользователь забывает изменить права доступа.
Решение № 1 — изменение прав
Для доступа к файловой системе сервера можно использовать бесплатный клиент FileZilla. Его необходимо установить, а затем запустить.
Алгоритм изменения атрибута файла (папки)
Рекомендуемые числовые значения для файлов — « 644 » и директорий — « 755 ». Необходимо пересматривать и изменять права отдельно для каждого объекта файловой системы. Этот подход позволит избежать ошибок.
Если изменение прав доступа не привело к положительному результату, а при открытии сайта снова появляется ошибка 500, то следует попробовать другой способ решения проблемы.
Решение № 2 — перезагрузка сервера
При размещении ресурса на базе физического или виртуального выделенного сервера (VPS) может иногда возникать ошибка 500. Если страница временно недоступна и браузер выдает ошибку с кодом «500», а изменения прав доступа были испробованы, то нужно просто перезагрузить сервер.
Решение № 1 — исправление кода
Для поиска существует специальный алгоритм последовательного запуска директив, содержащихся в файле. Его нужно скачать на локальный компьютер, а затем открыть в текстовом редакторе.
Методика выявления неверного кода
Вышеописанного алгоритма достаточно для выявления неверного кода. Однако бывают ситуации, при которых код, на первый взгляд, написан верно, а директивы не поддерживаются хостингом. Тогда нужно попробывать второй вариант решения проблемы.
Решение № 2 — замена символов
Алгоритм нахождения
Долгое выполнение скриптов
Решение № 1 — оптимизация PHP-скрипта
Чтобы оптимизировать PHP-скрипт, необходимо его переписать без лишнего кода. В интернете существует несколько сервисов для выявления избыточного кода.
Эта задача под силу опытному программисту. Новичку рекомендуется работать со скриптом, тестируя его на локальном сервере, а затем загрузить на хостинг.
Решение № 2 — увеличение времени обработки
Если используется веб-хостинг, то выполнить эту операцию не получится. В этом случае необходимо связаться с технической поддержкой.
Ошибка в коде CGI-скрипта
Скрипт CGI-типа используется для создания интерактивных страниц, контент которых зависит от действий пользователя. Довольно часто при неверной работе со скриптами этого типа на сайте возникает внутренняя ошибка сервера с кодом «500».
Решение № 1 — проверка формата окончания строк
Для проверки символа, содержащегося в конце каждой строки, используется специальный редактор (например, Notepad++ или любой другой с поддержкой отображения символов табуляции).
Решение № 2 — установка прав доступа
Одной из причин неправильной работы CGI-скриптов является некорректное разрешение прав доступа. Для директории, в которой хранятся CGI-файлы, должны стоять права с числовым значением « 755 ».
Решение № 3 — неверные HTTP-заголовки
В некоторых случаях ошибка возникает из-за некорректных HTTP-заголовков. Для ее диагностики следует проверить файл « error.log ».
Превышение лимита выделенной памяти
Некоторые хостинг-компании, чтобы избежать перегрузки сервера, устанавливают определенный лимит памяти, используемой скриптами. В результате превышения этого ограничения возникает внутренняя ошибка сервера с кодом состояния «500».
Решение № 1 — проверка PHP-скриптов
Чтобы проверить PHP-скрипты, следует скачать на локальный компьютер исходник сайта, а затем протестировать его на работоспособность.
Затем требуется проверить описание функций (структуру и код) и включить опцию показа ошибок в « php.ini ».
Опции для тестирования
В файле конфигурации нужно указать вышеописанные параметры без точек.
Если проблем в файле нет, а сообщение об ошибке «500» выводится на экране, необходимо перейти ко второму способу решения проблемы.
Решение № 2 — изменение настроек
Настройка лимита памяти выставляется в файле конфигурации « php.ini ». За этот параметр отвечает опция « memory_limit ».
При использовании VPS она устанавливается экспериментальным путем. После каждого изменения файл загружается на сервер, а затем тестируется работа сайта. Однако нужно помнить об ограничении использования памяти со стороны поставщика услуги.
Решение № 3 — связаться с технической поддержкой
Если ошибка «500» не исчезает при правильной работе скрипта и верных настройках, то нужно связаться с технической поддержкой. Как правило, они помогают исправить проблему.
Некорректная работа CMS
Причиной появления ошибки «500» могут стать неверные настройки CMS. Наиболее часто используются WordPress и Joomla. Следовательно, на их примере и нужно разобрать причины возникновения проблемы, а также решения по ее устранению.
Ошибка «500» в WordPress
Файл используется при изменении структуры ссылок и работе плагинов. Кроме того, в него могут вносить изменения ядро CMS, темы и плагины.
Выполнение диагностики
Последний пункт влияет на активацию плагинов. Его рекомендуется рассматривать как временную меру.
Решение № 2 — смена текущей темы
Для устранения ошибки «500» рекомендуется поменять тему на другую, а затем обновить страницу. Если сайт заработал, то причина в ней. В противном случае нужно перейти к третьему варианту решения проблемы.
Решение № 3 — перебор плагинов
При расширении функциональности сайта пользователи используют соответствующие плагины, которые могут стать причиной внутренней ошибки сервера. Для диагностики неработающего компонента нужно последовательно деактивировать каждый из плагинов.
Порядок деактивации плагина
Если деактивация плагинов не привела к положительному эффекту, и сайт по-прежнему не работает, то нужно перейти к четвертому методу.
Решение № 4 — модификация конфигурационного файла
Устранить проблему внутренней ошибки сервера поможет увеличение объема памяти.
Алгоритм модификации
Решение № 5 — обновление CMS
Если ни один из методов не помог, то причина заключается в ядре движка CMS. Для устранения ошибки его нужно обновить до последней версии или переустановить.
Ошибка «500» в CMS Joomla
Ошибка с кодом «500» иногда возникает при попытке зайти в административную панель CMS Joomla. При этом сайт и все его функции работают корректно.
Ошибку нужно искать самостоятельно, перебирая каждый из вариантов. В файле « error.php », который расположен в директории « logs », находится описание всех проблем при работе с CMS.
Решение № 1 — установка прав на «logs»
Чтобы устранить проблему, нужно установить права доступа на папки « logs » и « tmp », которые должны соответствовать числовому значению « 777 ».
Решение № 2 — корректность путей к директориям «logs» и «tmp»
Пути к директориям хранятся в файле « configuration.php ». Необходимо проверить их правильность, указав при необходимости полные пути.
Если, после реализации предложенных методов исправления ошибки «500», сайт на хостинге по-прежнему не работает, необходимо обращаться к техподдержке хостинг-провайдера.
Начни экономить на хостинге сейчас — 14 дней бесплатно!
Что такое 500 ошибка сервера, и как её исправить
Поделиться этим постом
500 ошибка сервера может однажды может случиться на любом сайте. При такой проблеме ни один пользователь не сможет получить доступ к ресурсу. В этой статье мы опишем, как определить и исправить причины внутренней ошибки сервера 500.
1. 500 Internal Server Error — что это?
500 — код ошибки, указывающий на проблемы с сервером. Она возникает по различным причинам:
Пользователи, сталкиваясь с ошибкой, видят следующее предупреждение.
Вебмастерам важно оперативно устранять ошибку сервера 500, чтобы не терять потенциальных клиентов, ведь далеко не каждый пользователь станет возвращаться на сайт, увидев ошибку. Для её исправления следует откорректировать конфигурацию сервера и добиться правильного выполнения запросов.
В подавляющем большинстве ситуаций исправить ошибку можно самостоятельно, если же это не удалось — придётся обратиться в техподдержку хостинг-провайдера. Установить причину 500 ошибки поможет последовательная проверка работы разных компонентов.
2. Почему появляется ошибка 500 Internal Server Error
2.1. Серверные ошибки
Начните работу по исправлению 500 внутренней ошибки сервера с анализа логов ошибок. Чтобы их проверить, перейдите в панель управления хостингом и найдите раздел с настройками ресурса.
Выберите в логах вкладку «Error» и необходимую дату, чтобы просмотреть отчёт за определённый день, или укажите диапазон времени.
Ещё один способ обнаружить источник ошибку 500 Internal Server Error — провести техническую проверку, которая доступна в разделе настроек.
В отчёте строки с ошибками будут выделены красным цветом.
Если тестер обнаружил какие-то проблемы, вероятнее всего, именно они стали причиной внутренней серверной ошибки.
Ещё одна потенциальная причина ошибки 500 — некорректный синтаксис директивы FilterProvider, отвечающей за сжатие контента для ускорения работы. Эта директива включает сжатие на основании заголовков Content-Type, а на хостинге сжимать контент может Nginx, и до Apache такие запросы не дойдут. Следует также учитывать, что для различных версий Apache используется разный синтаксис.
2.3. Неверные права доступа
При создании нового сайта или восстановлении ресурса из бэкапа может возникать ошибка прав доступа к файлам. Например, к ним могут установиться права доступа 777, а это значит, что любой пользователь имеет право их изменять. Такая ситуация критична для безопасности сервера, поэтому он заблокирует файлы, и возникнет ошибка 500.
Чтобы узнать, какие права доступа установлены, откройте в файл-менеджере необходимый документ и зайдите через контекстное меню в его свойства либо раздел «Права доступа».
Допустимые права доступа к каталогам и файлам — 640 или 755.
2.4. Ошибки в Perl и Python скриптах
Иногда 500 ошибка возникает при выполнении скриптов. В данной ситуации нужно проверить, выполняются ли указанные условия:
2.5. Медленная скорость работы PHP-скриптов
На проекте могут присутствовать слишком медленные скрипты, которые не успевают вовремя обработать поток информации, из-за этого возникает внутренняя серверная ошибка.
2.6. Конфликты после обновлений и установки плагинов
Бывает, что проблемы возникают после обновления версии CMS либо установки новых расширений, плагинов или модулей. Если до установки модуля сайт работал нормально, деактивируйте его и перезагрузите страницу браузера. Возможно, ошибку вызвал какой-то внутренний конфликт.
2.7. Устаревшая версия PHP
Устаревшие версии PHP 5.6 и 7.0 не получают обновления безопасности, они работают медленнее, и у них могут возникать проблемы с различными плагинами и скриптами. Помимо этого, ресурсы с устаревшей версией PHP хуже ранжируются. Проверить текущую версию можно на хостинге в разделе «Настройки» — «Настройка PHP».
Быстро проверять коды ответа сервера страниц сайта вам поможет Netpeak Spider — инструмент для регулярного SEO-аудита, быстрого поиска ошибок, системного анализа и парсинга сайтов. У краулера есть бесплатная версия без ограничений по времени,в которой доступны многие базовые функции.
Чтобы получить доступ к бесплатному Netpek Spider, достаточно просто зарегистрироваться, скачать и установить программу 😉
3. Отображается 500 Internal Server Error — как исправить?
3.2. Исправление прав доступа
При некорректно установленных правах поменяйте их на 640 либо восстановите настройки по умолчанию. В зависимости от хостинг-провайдера алгоритм действий может различаться, найдите соответствующие настройки. Например, у провайдера «Украина» предлагается восстановить права доступа ко всем файлам и папкам в разделе «Установка CMS».
Можно также восстановить настройки по умолчанию с помощью редактирования прав доступа конкретного файла.
3.3. Исправление проблем с расширениями или обновлениями
Если внутренняя ошибка 500 возникла после установки новых модулей, но их деактивация не исправила ситуацию, воспользуйтесь услугой восстановления резервной копии сайта хостинг-провайдера.
При заказе необходимо выбрать дату, на момент которой сайт был работоспособным и восстановить именно эту версию. В течение получаса сайт должен восстановить корректную работу.
Подводим итоги
А вы часто сталкиваетесь с 500 ошибкой? Как её исправляете? Оставляйте свои ответы в комментариях 😉
HTTP Error 500.0 — ошибка внутренней ошибки сервера при открываемой веб-странице IIS
В этой статье помогают устранить ошибку HTTP 500.0, которая возникает при посещении веб-сайта, который находится на сайте IIS.
Оригинальная версия продукта: службы IIS
Исходный номер КБ: 942031
Аннотация
В этой статье описываются коды HResult при столкновении с ошибкой 500.0 в веб-приложении службы IIS (IIS). Эта статья предназначена для администраторов веб-сайтов. Эти ошибки имеют множество причин и могут повлиять на различные конфигурации системы. Описанные в этой статье процедуры должны выполняться членом группы администраторов на сервере.
Конечные пользователи, которые испытывают эти ошибки, должны уведомить администратора веб-сайта о проблеме.
Код HResult
Сообщение об ошибке HTTP 500 указывает на то, что на веб-сервере, на котором размещен веб-сайт во время возврата ошибки, возникла проблема.
Ниже приводится информация об этих ошибках.
Код HResult 0x80070032
Сообщение об ошибке:
Ошибка сервера в приложении «имя приложения»
ОШИБКА HTTP 500.0 — ошибка внутреннего сервера
HRESULT: 0x80070032
Описание фильтра ISAPI HRESULT drive:\FilePath\ISAPI_FLT.dll попытались зарегистрировать для SF_NOTIFY_READ_RAW_DATA уведомления.
Эта проблема возникает из-за того, что IIS 7.0 не поддерживает фильтр API API (ISAPI), который регистрируется для SF_NOTIFY_READ_RAW_DATA уведомления.
Не используйте фильтр ISAPI, который регистрирует уведомление SF_NOTIFY_READ_RAW_DATA в IIS.
Код HResult 0x80070035
Сообщение об ошибке:
Ошибка сервера в приложении «имя приложения»
ОШИБКА HTTP 500.0 — ошибка внутреннего сервера
HRESULT: 0x80070035
Описание HRESULT Страница не может отображаться из-за ошибки внутреннего сервера.
Эта проблема возникает из-за того, что сервер с iiS 7.0 не может получить доступ к настроенного корневого каталога запрашиваемого расположения.
Убедитесь, что сервер с iiS 7.0 может получить доступ к настроенной корневой каталог запрашиваемого расположения.
Код HResult 0x8007000d
Сообщение об ошибке:
Ошибка сервера в приложении «имя приложения»
ОШИБКА HTTP 500.0 — ошибка внутреннего сервера
HRESULT: 0x8007000d
Описание обработика HRESULT «ASPClassic» имеет плохой модуль «IsapiModule» в списке модулей.
Добавьте модуль ISAPIModule в список модулей для веб-сайта. Для этого выполните следующие действия:
Код HResult 0x800700c1
Сообщение об ошибке:
Ошибка сервера в приложении «имя приложения»
ОШИБКА HTTP 500.0 — ошибка внутреннего сервера
HRESULT: 0x800700c1
Описание HRESULT Страница не может отображаться из-за ошибки внутреннего сервера.
Эта проблема возникает из-за того, что сопоставление сценариев не допустимо.
Убедитесь, что сопоставление сценариев указывает на ISAPI.dll, который может обрабатывать запрос. Для этого выполните следующие действия:
Код HResult 0x80070005
Сообщение об ошибке:
Ошибка сервера в приложении «имя приложения»
ОШИБКА HTTP 500.0 — ошибка внутреннего сервера
HRESULT: 0x80070005
Описание HRESULT LoadLibraryEx на фильтре ISAPI «path_of_isapi» не удалось.
Эта проблема возникает из-за того, что не допустимый фильтр ISAPI загружается на глобальном уровне или на уровне веб-сайтов.
Удалите фильтр ISAPI, который не является допустимым. Для этого выполните следующие действия:
Код HResult 0x8007007f
Существует две возможности для HResult 0x8007007f:
Сообщение об ошибке 1:
Ошибка сервера в приложении «имя приложения»
ОШИБКА HTTP 500.0 — ошибка внутреннего сервера
HRESULT: 0x8007007f
Описание HRESULT Вызов GetProcAddress на фильтре ISAPI «path_of_isapi» не удалось.
Эта проблема возникает из-за того, что не допустимый фильтр ISAPI загружается на глобальном уровне или на уровне веб-сайтов.
Чтобы устранить проблему, удалите не допустимый фильтр ISAPI. Для этого выполните следующие действия:
Сообщение об ошибке 2:
Ошибка сервера в приложении «имя приложения»
ОШИБКА HTTP 500.0 — ошибка внутреннего сервера
HRESULT: 0x8007007f
Описание HRESULT Существует проблема с ищемым ресурсом, поэтому его невозможно отобразить.
Эта проблема возникает из-за того, что сопоставление обработчивого ресурса указывает на файл.dll, который не может обрабатывать запрос.
Чтобы устранить проблему, отредактировать сопоставление обработчивого ресурса, чтобы указать на.dll, который может обрабатывать запрос. Для этого выполните следующие действия:
Дополнительная информация
Для любых исключений, выброшенных из кода веб-приложения, проверьте журнал событий приложения или собственный журнал приложений для типа исключений, сообщения об исключениях и стека вызовов исключений. Если требуется дальнейшая отладка, используйте последнюю версию DebugDiag для захвата сбросов исключений с первого случая.
Как исправить ошибку 500 Internal Server Error
Разбираемся, что означает ошибка 500, из-за чего она может возникнуть и что делать, чтобы убрать её с сайта.
Что внутри
Что такое ошибка 500
Ошибка 500 Internal Server Error — это код состояния HTTP, один из стандартных ответов сервера на запрос браузера. Примеры других кодов HTTP: 403 Forbidden, 404 Not Found или 503 Service Unavailable.
Сервер отправляет один из таких кодов каждый раз, когда в браузере открывают новую страницу или переходят по ссылке. Даже когда никакой ошибки не было и страница нормально загрузилась.
Конкретно этот код HTTP — 500 Internal Server Error — означает, что сервер не смог выполнить запрос из-за непредвиденной ошибки.
Как может выглядеть ошибка 500
Дизайн страницы с 500 ошибкой будет отличаться в зависимости от разных факторов: вашего браузера, веб-сервера, панели управления хостингом, операционной системы, а также движка или фреймворка, на котором работает сайт.
Например, вот так выглядят стандартные страницы 500 ошибки четырёх популярных веб-серверов: Apache, Nginx, LiteSpeed и IIS 7.
Когда что-то не так с параметрами PHP или правами на файлы и папки, в Google Chrome 500 ошибка будет оформлена в фирменном стиле браузера, а в Firefox будет пустая страница — «белый экран смерти».
Когда на сайте с WordPress есть проблема со скриптом — написан с ошибкой или в нём пропущен символ — тоже возникнет ошибка 500:
Также страницу с 500 ошибкой иногда оформляют в общем дизайне сайта. Вот так, например, выглядит страница с такой ошибкой на сайте YouTube:
Это не все варианты, а только самые популярные. В зависимости от того, какое ПО вы используете, оформление страницы с ошибкой может быть и другим.
Текст на странице тоже может отличаться. Вот некоторые варианты, с которыми вы можете столкнуться:
Почему возникает ошибка 500
Как вы уже поняли, ошибка 500 — это собирательное сообщение, которое возникает, когда что-то не сработало, как ожидалось. Такой обобщённый ответ используют, потому что заставить сервер сломаться могут тысячи разных вещей и невозможно предусмотреть отдельную страницу для каждого случая.
Проще всего посмотреть в логи сервера, чтобы найти причину возникновения 500 ошибки. Но вообще, вот несколько распространенных ситуаций, в которых она возникает:
Как 500 ошибка влияет на SEO
Если на сайте возникла 500 ошибка, важно исправить её как можно быстрее, потому что из-за неё страницы могут исчезнуть из результатов поиска.
Когда поисковый робот заходит на страницу и видит 500 ошибку, он пробует зайти на страницу ещё раз в пределах суток, рассчитывая на то, что владелец сайта решит проблему. Но если при повторном посещении снова будет код ответа сервера 500, бот уже может исключить страницу из индекса.
Проверить, выпала ли страница из индекса, можно в Google Search Console. Для этого войдите в консоль, введите в строке поиска URL страницы и нажмите Enter. Сервис проверит страницу и покажет её статус. Если страницы уже нет в индексе, нажмите «Запросить индексирование», чтобы повторно её туда добавить.
Также Search Console поможет вам своевременно обнаруживать ошибки. Для этого просто периодически проверяйте раздел «Покрытие» на главной странице панели в меню слева. В него будут записываться все ошибки на сайте.
Как исправить ошибку 500
Если вы столкнулись с ошибкой как посетитель, ваша единственная опция описана в первом совете. Для остальных советов понадобится доступ на хостинг.
Советы в этом разделе описывают не все ситуации, из-за которых может возникнуть 500 ошибка, а только наиболее популярные. Если ничего из перечисленного выше не поможет, в конце статьи есть рекомендация, что делать.
1. Очистите кэш и обновите страницу
Бывает, 500 ошибка возникает в моменте и пропадает при повторной загрузке страницы. При этом иногда она кэшируется, поэтому кэш на всякий случай стоит очистить. Вот как сделать это в популярных браузерах:
У нас на YouTube-канале также есть видеоинструкция: Как очистить кэш.
2. Проверьте логи
Так вы сразу увидите причину ошибки, вместо того чтобы перебирать все возможные варианты. Если вы не сильно разбираетесь, попробуйте сначала советы ниже. А уже если ничего не сработает, придётся возвращаться к этому варианту.
В зависимости от того, какой веб-сервер используется у вас на хостинге, по умолчанию логи будут храниться по таким путям:
Логи могут храниться и в других местах. Например, панели управления хостингом часто меняют стандартный путь их расположения:
Важный нюанс — доступ к общим логам будет только на VPS-хостинге или выделенном сервере. На виртуальном хостинге будет свой файл error_log. По умолчанию он создаётся в той же папке, где лежит скрипт, выполнение которого привело к 500 ошибке. Но разные CMS могут переопределять путь к этому файлу в другие папки.
Плюс в этот файл попадают только ошибки PHP. Ошибки веб-сервера попадут в основные логи, к которым не будет доступа. Так что, если у вас виртуальный хостинг и в логах с ошибками PHP пусто, свяжитесь с поддержкой провайдера и попросите их посмотреть основные логи. Пусть пришлют последние строки оттуда.
Вы также можете включить опцию display_errors, чтобы причина ошибки из логов отображалась на сайте. В панели управления cPanel для этого нужно найти на главной странице панели раздел «Программное обеспечение» и открыть приложение «Выбор версии PHP».
Дальше перейдите на вкладку «Настройки» и поставьте галочку в строке «display_errors». Изменения сохранятся автоматически.
На VPS или выделенном сервере добавьте такую директиву в основной файл php.ini:
После этого текст из логов будет выводиться на экран. Сначала в нём будет причина ошибки, а потом её объяснение. Например, путь к файлу с номером строки, на которой эта ошибка находится. Вот пример такого сообщения.
В этом случае 500 ошибка возникла из-за того что серверу обязательно нужно открыть файл version.php (слово «require» в самом начале), как указано на 33 строке в файле wp-settings.php, но прав для открытия этого файла нет (слова «Permission denied»).
3. Проверьте глобальные конфигурационные файлы
Если у вас виртуальный хостинг, беспокоиться не о чем. За настройку этих файлов отвечает хостинг-провайдер и вероятность возникновения ошибки из-за проблемы с этим файлом стремится к нулю.
Если у вас VPS или выделенный сервер, вы сами отвечаете за настройку этих файлов. И в этом случае 500 ошибку может вызвать случайная опечатка или конфликтующие директивы.
У веб-сервера Apache конфигурационные файлы хранятся в таких местах:
У веб-сервера Nginx конфигурационные файлы хранятся в таких местах:
Если вы управляете сервером при помощи какой-то панели управления, конфигурационные файлы могут храниться в других папках. Например, для Webuzo это /usr/local/apps/apache, а для Plesk — /home/user/conf/.
Этот файл будет в корневой папке домена на любом хостинге с веб-сервером Apache. Даже если вы никогда не редактировали его, в файле всё равно может быть ошибка. Например, такое бывает с сайтами на WordPress: при установке плагинов они сами добавляют нужные директивы в файл, из-за чего иногда возникают конфликты с предыдущими директивами и возникает 500 ошибка.
5. Проверьте права доступа к папкам и файлам
Ошибка 500 Internal Server Error часто возникает, потому что у веб-сервера нет доступа к какой-то папке или файлу, из-за чего он не может выполнить скрипт. Дело может быть в том, что у файла или папки в принципе нерабочие права, а может в том, что файлом или папкой владеет один пользователь, а веб-сервер выполняет процессы от имени другого; у владельца права есть, а у веб-сервера нет.
Изменить владельца можно в командной строке при помощи команды chown:
Изменить права можно либо при помощи FTP-клиента вроде FileZilla, если вы таким пользуетесь, либо при помощи менеджера файлов в панели управления хостингом. Вот как сделать это в cPanel.
На главной странице панели найдите блок «Файлы» и перейдите в раздел «Менеджер файлов».
Выделите нужный файл или папку и нажмите в верхней панели кнопку «Права». Вот стандартные значения, с которыми всё должно работать:
Если привыкли работать с файлами в командной строке, вот команда, которая поможет изменить права:
6. Проверьте базу данных
Ошибка Internal Server Error ещё возникает, когда сервер не может подключиться к базе данных. Текст ошибки в этом случае будет «Error establishing a database connection», но в логах будет код ошибки 500.
Чаще всего сервер не может подключиться к базе данных из-за того, что в файле с деталями базы указан неправильный логин или пароль. Такое может произойти, если вы или ваш программист поменяли детали, но случайно забыли обновить их в файле. Расположен этот файл обычно в корневой папке сайта и в его названии есть слово config. Например, для сайтов на WordPress это wp-config.php, а для сайтов на OpenCart — config.php.
Также дело может быть в том, что MySQL-сервер перегружен из-за большого количества посетителей. Такое часто бывает на виртуальном хостинге, где для каждого пользователя ограничено количество одновременных подключений к базе.
Запросов к базе данных может стать больше по мере естественного роста трафика на сайт. Это обычно значит, что нужен более мощный хостинг. Либо запросы могут быть вредоносными и тогда нужно просто от них отбиться. Проверить нагрузку можно при помощи команд SHOW GLOBAL STATUS, VMSTAT или TOP. Если не разбираетесь, обратитесь за помощью к разработчику сайта или поддержке вашего хостинг-провайдера.
Ещё ошибку Error establishing a database connection может вызвать повреждение в базе данных. По мере того как вы наполняете свой сайт контентом, устанавливаете темы и плагины, оптимизируете при помощи разных инструментов, что-то важное может случайно удалиться, из-за чего база и перестанет работать. В этом случае решением будет восстановить резервную копию, если она есть.
7. Проверьте использование ресурсов на сервере
Любое действие на сайте запускает на сервере процесс. Если их будет слишком много и все ресурсы окажутся заняты, начнёт образовываться очередь. Может выйти так, что очередь станет слишком длинной и новые процессы станут вытеснять старые. В результате какой-то важный процесс может не выполниться и возникнет 500 ошибка.
Если у вас виртуальный хостинг, вы не можете управлять процессами — это задача провайдера. Но, возможно, сможете оценить загруженность сервера в своей панели управления. В cPanel это можно сделать в блоке «Статистика» на главной странице панели справа:
При полной загруженности сервера вы можете связаться с провайдером и попросить их завершить некоторые процессы. Но на таком хостинге они обычно связываются с клиентами сами, когда замечают у них много тяжелых процессов, поскольку это может влиять на работу других сайтов на сервере.
Если у вас VPS или выделенный сервер, вы сами управляете процессами. Их можно посмотреть при помощи команды top, и при необходимости завершить некоторые из них, используя команду:
Если покупали хостинг у нас, напишите нам письмо с деталями вашего хостинга и описанием проблемы. Наши специалисты взглянут на процессы и подскажут, что можно сделать.
8. Проверьте параметры PHP max_execution_time и memory_limit
Эти параметры регулируют поведение сервера при обработке PHP скриптов, чтобы он не зависал и не тратил на обработку все ресурсы. Параметр max_execution_time — это время в секундах, в течение которого скрипт должен выполниться. А memory_limit — это количество памяти PHP, которое сервер может выделить для выполнения скрипта.
Стартовых значений этих параметров может не хватать, чтобы сервер выполнил важные скрипты, из-за чего он будет вынужден отправить браузеру 500 ошибку.
Один из способов увеличить значения этих параметров — в панели управления хостингом. В cPanel для этого нужно найти на главной странице панели раздел «Программное обеспечение» и открыть приложение «Выбор версии PHP».
Дальше перейдите на вкладку «Настройки», найдите указанные параметры и увеличьте их значения. Настройки сохраняются автоматически.
9. Проверьте PHP-скрипты на ошибки
Самые распространённые ошибки — это опечатки: пропущена буква, точка с запятой или скобка. Также может быть такое, что в скрипте стоит ссылка на файл, но самого файла по указанному пути нет. В результате сервер не может выполнить скрипт и показывает в браузере 500 ошибку.
Ещё одна причина — несовместимость скрипта с новой версией PHP. Разные версии отличаются друг от друга, поэтому скрипт, который работал с PHP 5.6, может уже не работать с PHP 7.2. Например, потому что в новой версии больше не поддерживается какая-то переменная. Также после смены версии PHP некоторые расширения могут быть выключены по-умолчанию или отсутствовать как устаревшие.
10. Проверьте плагины и тему
Любой плагин или тема это чей-то код, который вы встраиваете в свой сайт. Если этот код написан плохо или после его добавления он вступает в конфликт с другим кодом, на сервере может возникнуть 500 ошибка. Иногда она возникает сразу после установки или обновления и на всех страницах сайта, но может и возникать после выполнения какого-то действия или только на одной странице.
Чтобы проверить, дело в плагине или нет, деактивируйте их и проверьте, исчезла ли ошибка. Если да, включайте плагины по очереди, пока не найдёте тот, из-за которого она возникает. Если нет, значит дело в чём-то другом.
Подобным образом можно проверить и тему — включите вместо текущей стандартную и снова зайдите на сайт. Дальше по ситуации: либо ищите проблему дальше, либо меняйте тему, либо свяжитесь с разработчиком, чтобы помог устранить ошибку.
Отключить плагины можно в консоли WordPress, в разделе «Плагины» – «Установленные. Поставьте галочку в шапке таблицы, чтобы выбрать все плагины сразу, выберите в выпадающем меню выше вариант «Деактивировать» и нажмите «Применить».
Если не можете попасть в консоль, потому что 500 ошибка отображается на всех страницах сайта, отключить плагины можно в менеджере файлов в панели управления хостингом. Вот как это сделать в cPanel.
На главной странице cPanel найдите блок «Файлы» и перейдите в раздел «Менеджер файлов».
Дальше найдите корневую папку домена, перейдите в папку wp-content и переименуйте папку plugins, например, в plugins-old. Это отключит все плагины.
Обычно для основного домена корневая папка называется public_html, а для дополнительного — так же, как и сам домен.
Если после этого 500 ошибка исчезла, переименуйте папку plugins обратно, зайдите в неё и по очереди переименовывайте папку с каждым плагином, пока не найдёте тот, который вызывает ошибку.
11. Обратитесь к хостинг-провайдеру
500 ошибка может возникать, если провайдер проводит на сервере технические работы. Поэтому уточните этот момент у поддержки, если не получается найти причину ошибки самостоятельно.
Многие провайдеры информируют клиентов о подобных работах. У нас для этого есть отдельная страница «Сервисные уведомления». Вы найдёте её в боковой панели своего аккаунта.
Что делать, если советы не помогли
К сожалению, такое тоже может произойти. Ошибка 500 очень индивидуальна и рассмотреть все ситуации в статье невозможно. Попробуйте погуглить фрагмент ошибки, возможно, у кого-то была такая же проблема и её решение описали на каком-нибудь форуме. Либо пришлите в комментариях к этой статье сообщение из логов, постараемся помочь.