500 Internal Server Error: с чего начать проверку
500 Internal Server Error означает, что браузер дошел до сервера, но сайт сломался во время обработки запроса. На самой странице обычно не видно настоящую причину, поэтому быстрее всего не гадать, а смотреть лог ошибок и типовые места поломки.
1. Сначала откройте error log
В DirectAdmin проверьте error log домена или раздел статистики домена. Также посмотрите, нет ли локального файла error_log внутри папки сайта. В логе часто видно точный файл и строку: PHP Fatal error, отсутствующее расширение, неверный путь, memory limit, проблема с правами или неправильная директива в .htaccess.
Если ошибка появляется после конкретного действия, повторите его и сразу проверьте последние строки в логе. Время записи очень важно.
2. Временно проверьте .htaccess
Поврежденный .htaccess - одна из самых частых причин 500. Временно переименуйте его, например:
.htaccess-disabled
Если сайт после этого открылся, проблема внутри rewrite-правил или серверных директив. Верните имя файла обратно и удалите только проблемное правило.
Особенно внимательно проверьте php_value, php_flag, старые правила Options, пути, скопированные с другого сервера, и rewrite-правила после переноса CMS. Параметры PHP обычно нужно менять в PHP Selector, а не случайными директивами в .htaccess.
3. Проверьте права файлов и папок
Для обычного сайта на виртуальном хостинге безопасные права обычно такие:
| Объект | Рекомендуемые права |
|---|---|
| Папки | 755 |
| Файлы | 644 |
| Конфигурационные файлы с паролями | 600, если поддерживается |
Права вроде 777 небезопасны и могут привести к тому, что PHP-обработчик откажется запускать скрипты. После переноса или распаковки архива также проверьте, что файлы принадлежат правильному пользователю хостинг-аккаунта.
4. Проверьте версию PHP, расширения и лимиты
Сайт может отдавать 500, если версия PHP не совместима с CMS, отсутствует нужное расширение или скрипт упирается в memory_limit либо время выполнения. Если ошибка появилась после смены версии PHP, временно верните прежнюю версию и сравните результат.
На хостинге с CloudLinux также проверьте использование ресурсов: CPU, память, entry processes и лимит процессов. Если 500 появляется только при импортах, резервном копировании или действиях в админке, сайт может упираться в лимиты аккаунта или тяжелый скрипт требует оптимизации.
5. WordPress и другие CMS
Для WordPress частые причины - плагин, тема, версия PHP, поврежденный .htaccess или незавершенное обновление. Перед правками сделайте резервную копию. После этого можно временно отключить последний измененный плагин или тему и снова проверить лог.
Для Joomla, OpenCart, Laravel и других CMS/фреймворков после переноса проверьте конфигурационные файлы: configuration.php, config.php, .env и настройки подключения к базе данных.
Короткий чек-лист
- Проверены последние строки error log.
- .htaccess временно протестирован.
- Для папок обычно стоят права 755, для файлов - 644.
- Версия PHP и нужные расширения корректные.
- Проверены плагины/темы CMS, которые менялись недавно.
- После переноса корректны настройки базы данных.
- В Resource Usage нет упора в память, CPU или процессы в момент ошибки.
Лучшие следующие статьи
Быстрый маршрут диагностики
- Проверьте, что домен смотрит на нужный хостинг.
- Проверьте, есть ли index-файл в правильной публичной папке.
- Перед случайными правками откройте error_log.
- Если ошибка появилась после изменения, сначала откатите именно это изменение.
Пришлите домен, скриншот панели и что менялось перед проблемой. Поможем выбрать правильную папку, версию PHP, лог или DNS-проверку. Написать в чат.
Если статья кажется слишком широкой, используйте связанные ссылки ниже как меню: они разбивают тему на небольшие задачи.
