500 Internal Server Error означает, что веб-сервер получил запрос, но сайт сломался во время обработки. Браузер не показывает настоящую причину ошибки, поэтому быстрее всего идти не наугад, а смотреть лог ошибок и типовые причины ниже.

1. Проверьте лог ошибок

В DirectAdmin откройте статистику домена или раздел с error log для нужного домена. Также проверьте, нет ли в корне сайта собственного файла error_log. В логе обычно видно точную причину: PHP Fatal error, неправильная директива в .htaccess, отсутствующий файл, проблема с правами или лимит памяти.

2. Временно проверьте .htaccess

Поврежденный или неподходящий .htaccess - одна из самых частых причин ошибки 500. Переименуйте его временно, например в .htaccess_old, и откройте сайт снова. Если ошибка исчезла, проблема находится внутри этого файла.

Особенно внимательно проверьте директивы php_value, php_flag, неправильные правила Options, старые rewrite-правила или пути, скопированные с другого сервера. Параметры PHP лучше менять через панель хостинга или PHP Selector, а не случайными директивами в .htaccess.

3. Проверьте права на файлы и папки

На виртуальном хостинге у файлов обычно должны быть права 644, у папок - 755. Права вроде 777 небезопасны и могут приводить к тому, что веб-сервер или PHP-обработчик откажется запускать скрипты. После переноса сайта или распаковки архива также проверьте, что файлы принадлежат правильному пользователю хостинг-аккаунта.

4. PHP-ошибки, версия PHP и лимиты

PHP Fatal error может сразу отдавать 500. Частые причины: несовместимая версия PHP, отсутствующее расширение, сломанный плагин или тема, синтаксическая ошибка после ручной правки файла, нехватка memory_limit или слишком долгое выполнение скрипта. Если сайт на WordPress, после резервной копии попробуйте отключить недавно обновленные плагины или тему.

На хостинге с CloudLinux сайт также может падать при достижении лимитов аккаунта: память, CPU, entry processes или количество процессов. Если ошибка появляется только при высокой нагрузке или тяжелых действиях в админке, проверьте использование ресурсов в панели хостинга.

5. Подключение к базе данных и конфиг CMS

После переноса сайт может отдавать 500, если в конфигурационном файле остались старые имя базы, пользователь, пароль или путь/сокет. Проверьте файлы вроде wp-config.php, configuration.php, .env или аналогичные файлы вашей CMS/фреймворка.

Что отправить в поддержку

  • Домен и точную страницу, на которой появляется ошибка.
  • Когда началась ошибка и что меняли перед ее появлением.
  • Скриншот ошибки и последние строки из error log.
  • Меняли ли вы недавно версию PHP, восстанавливали бэкап, редактировали .htaccess, ставили плагин или переносили сайт.