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, ставили плагин или переносили сайт.
