Внутренняя ошибка сервера 500 появляется по многим причинам. Чтобы их выявить, нужно поочередно проверить все параметры отправки запроса. Для решения проблемы, в лучшем случае, достаточно переписать директиву в .htaccess, в худшем — придется заново создавать сайт.
Что такое 500 — ошибка Internal Server Error
500 — код ошибки, который выдает протокол HTTP в ответ на запрос клиента. Подобные сбои возникают чаще при нарушении работы сервера либо в случае отказа одного из компонентов загрузки. Технически все работает правильно, но что-то мешает запросам обрабатываться правильно, в результате чего выводится характерное сообщение на экран.
Причина ошибки на экран чаще не выводится. Ее можно обнаружить вручную методом исключения при проверке работы разных компонентов.
Возможные причины Internal Server Error
- Ошибки в логах сервера. Чтобы их выявить, необходимо провести техническую проверку сайта. В панели хостинга нужно найти файлы access.log (логи сервера) и error.log (ошибки логов).
Чтобы узнать о наличии опции техпроверки сайта в вашем хостинге, обратитесь в службу поддержки провайдера с соответствующим вопросом. Специалисты также могут проверить работу сервера и сообщить вам результат без ручной проверки технического состояния сайта.
- Неверные права доступа к файлам. Иногда по умолчанию устанавливаются права доступа 777. При таком варианте любой пользователь вправе изменить файлы. Это недопустимо для сервера, который в основном блокирует файлы с доступом 777. Проверить этот параметр можно в панели хостинга либо через файловый менеджер. Для этого нажмите правую кнопку мыши на конкретном файле и проверьте права доступа.
Рекомендуется устанавливать такие параметры доступа: 755 — для папок, 600 — для скриптов и 640 — для остальных файлов. В целях безопасности лучше, чтобы правами доступа к файлам и папкам обладал один человек. Автоматически этот параметр может измениться при восстановлении сайта либо загрузке новых файлов.
- Обновление CMS, тем или плагинов. При обновлении движка, изменении тем и установке плагинов могут возникать конфликты между параметрами загрузки. В этом случае ошибки сайта с кодом 500 появляются сразу после внесения подобных изменений. Для проверки нужно удалить установленный плагин, отменить обновления либо заново установить их. После этого перезагрузить сайт и проверить наличие ошибки.
Если вы не знаете, какой из плагинов вызвал сбой, отключайте все по очереди. После отключения одного перезагрузите страницу в браузере. Если не помогло, отключите второй и перезагрузите, и так далее. При отсутствии доступа к админке сайта, воспользуйтесь панелью управления хостинга.
Если ошибка возникла после изменения или обновления темы, восстановите предыдущее состояние сайта и проверьте его работу. Иногда достаточно вернуть предыдущую тему, на которой сайт работал без сбоев. Работать с темами можно в админке сайта либо панели хостинга.
- Неправильно составленный файл .htaccess. Нарушение правил иерархии файла, внесение лишних директив приводит к ошибке 500. Найдите .htaccess в корневой папке сайта через файловый менеджер или панель хостинга.
Измените название файла, добавив в него один дополнительный символ. В итоге получится, например, .htaccess5. После этого перезагрузите страницу в браузере. Если сайт заработал с отключенным .htaccess, причина сбоя кроется в нем. Попробуйте отредактировать этот файл. Для внесения правок следует нажать на него, либо вызвать контекстное меню правой кнопкой мыши, затем выбрать соответствующий пункт — редактирование.
После того, как он откроется, появится список параметров и директив. Обратите внимание, есть ли в этом списке директива Options. Поставьте перед ней знак #. В этом случае сервер будет воспринимать данную директиву, как комментирование, а не команду. Также можно заменить строку Options All -Indexes на Options -Indexes либо исправить строку Options +FollowSymLinks на Options +SymLinksIfOwnerMatch. Если эти шаги не помогут, попробуйте удалить параметры +ExecCGI, php_value, AddHandler, php_flag и директиву -MultiViews.
Если внесенные правки не помогают, удалите существующий файл .htaccess и создайте новый со стандартным синтаксисом. Вариант для WordPress:
# BEGIN WordPress<IfModule mod_rewrite.c>RewriteEngine OnRewriteBase
/RewriteRule ^index.php$ - [L]RewriteCond %{REQUEST_FILENAME}
!-fRewriteCond %{REQUEST_FILENAME} !-dRewriteRule .
/index.php [L]</IfModule># END WordPress
Для сайтов на Joomla можно скачать код .htaccess в соответствии с выбранной версией данной CMS.
- Нехватка памяти для загрузки скриптов. Сервер обладает лимитированной памятью. К тому же количество мегабайт может быть ограничено со стороны хостинг-провайдера из-за выбранного бюджетного тарифа. Ошибка сервера 500 также может возникать из-за ограниченного времени для загрузки скриптов. Создается большое количество запросов к серверу, который не способен их обработать. Через некоторое время связь обрывается и появляется надпись Internal Server Error.
Проверить работу скриптов можно через соответствующие плагины. Например, Query Monitor в WordPress, JsCssManipulate в Joomla, либо через установку профайлера XHprof. Если это не помогло, попробуйте увеличить память через РНР. Для этого добавьте в конец файла .htaccess часть кода:
php_value upload_max_filesize 128Mphp_value post_max_size
128Mphp_value max_execution_time
300php_value max_input_time 300php_value memory_limit 256M
Устанавливать объем памяти РНР можно и через панель хостинга.
В некоторых случаях помогает обновление версии РНР через панель хостинга. Если не известно, какая именно версия нужна, проверяйте каждую из них по очереди.
В этом же разделе можно изменить тип отображения ошибок на сайте. Установите флажок возле соответствующих пунктов.
После сохранения этих параметров и перезагрузки страницы, посмотрите, какой файл дает сбой сервера.
Другие варианты исправления ошибки 500 в WordPress
- Восстановление резервной копии. Этот вариант подходит при наличии созданной копии до поломки сайта. В панели управления хостингом доступны функции импорта/экспорта резервных копий сайта.
При наличии ранее созданной копии, удалите существующие файлы и загрузите новые через импорт. Таким образом можно решить и другие проблемы, связанные с загрузкой страниц и ответом сервера.
- Отладка системы. Для активации отладки нужно внести изменения в файл wp-config.php через файловый менеджер либо панель хостинга. Найдите в файле строку
define('WP_DEBUG', false);
и замените ее на:
// Enable WP_DEBUG modedefine( 'WP_DEBUG', true );//
Enable Debug logging to the /wp-content/debug.log filedefine(
'WP_DEBUG_LOG', true );// Disable display of errors and warnings define(
'WP_DEBUG_DISPLAY', false );@ini_set( 'display_errors', 0 );
// Use dev versions of core JS and CSS files
(only needed if you are modifying these core files)define( 'SCRIPT_DEBUG', true );
Обновите сайт, после чего найдите каталог wp-content в панели хостинга или файловом менеджере и откройте редактирование файла debug.log. Откроется значение, в котором будет указан источник ошибки.
- Перезапись файлов WordPress. В этом случае информация о сайте сохраняется, а стандартные файлы WordPress перезаписываются. Для этого скачайте последнюю версию системы на компьютер и распакуйте ее. Создайте резервную копию сайта, удалите файлы wp-content и wp-config-sample.php из скачанной новой версии. Это делается для предотвращения потери информации о существующем сайте. Далее в файловом менеджере выделите старые файлы и замените их на новые из скачанной версии WordPress.
После обновления сайт должен заработать. Если и это не помогло, придется заново создавать сайт с нуля.
Запомнить
Ошибка сервера 500 возникает по одной или нескольким причинам:
- проблемы с логами сервера;
- нарушение структуры файла .htaccess;
- сбои в корневой файловой системе;
- нехватка объема памяти для загрузки скриптов;
- долгая загрузка файлов и скриптов;
- конфликты после обновления CMS, установки плагинов и тем;
- ошибки в правах доступа к файлам.
Узнать о состоянии работы сервера можно в панели хостинга либо через службу поддержки. Если с сервером все в порядке, необходимо вручную проверить компоненты загрузки. Исправить ошибки сайта на WordPress можно также через резервное восстановление, отладку или замену стандартных файлов.
Что ещё почитать об ошибках ответа сервера:
Свежее
Обзор изменений в GA4: различие между ключевыми событиями (Key events) и конверсиями (Conversions)
Увидели оповещение в GA4 об изменении в конверсиях? Давайте разбираться что именно изменилось и как это повлияет на вашу аналитику
Как добиться роста органического трафика на 195% за полгода в высококонкурентной нише — кейс BAYADERA
Показываем на практике как повысить видимость сайта и небрендовый органический трафик
Кто такой конечный пользователь, и Почему он важен
Он нужен не только для настройки рекламы, но и при разработке продукта или услуги. Разбираемся, кто он такой и как его найти