Ошибка 500 — это не причина, а общий статус
Сначала убедитесь, что сервер действительно отвечает 500, а не 502/503/504. Эти коды указывают на разные участки цепочки запроса.
Проверить код без браузера
curl -sS -L -o /dev/null -w "HTTP=%{http_code} final=%{url_effective} time=%{time_total}s\n" https://example.com/problem-page500, 502, 503 и 504 — куда смотреть
| Код | Что означает на практике | Первая проверка |
|---|---|---|
| 500 | Приложение/сервер не обработал запрос | PHP/web log, config, permissions |
| 502 | ||
| ой ответ от upstream | PHP-FPM socket/port, service status | |
| 503 | Сервис временно недоступен/перегружен | лимиты, maintenance, worker pool |
| 504 | Upstream не ответил вовремя | долгий PHP/SQL/API, timeout, нагрузка |
На обычном хостинге или ISPmanager
Воспроизведите 500 и сразу откройте error log домена. Проверьте активную версию PHP и последние изменения. Если ошибка появилась после переключения PHP — временный возврат рабочей версии помогает восстановить сайт, но несовместимость всё равно нужно исправить.
ISPmanager / VPS: последние ошибки
sudo tail -n 100 /var/www/httpd-logs/example.com.error.log
sudo tail -n 100 /var/log/nginx/error.log
sudo tail -n 100 /var/log/apache2/error.log
sudo tail -n 100 /var/log/httpd/error_logБезопасные проверки перед restart
sudo nginx -t
sudo apache2ctl configtest
sudo httpd -t
php -l /path/to/changed-file.php
df -h
df -i
free -hЧастые причины 500
- Fatal/Parse error PHP;
- несовместимый plugin/Extra после обновления;
- неверная директива .htaccess или web-server config;
- ошибка прав/владельца;
- заполненный диск или inode;
- исчерпанная память;
- исключение приложения или ошибка БД.
После исправления повторите проблемный запрос и убедитесь, что свежий error log больше не содержит той же ошибки.
Скачать набор диагностики
Первичная диагностика HTTP 500
При ошибке 500 запишите время, проблемный URL и действие, которое её вызывает. Проверьте журналы веб-сервера и PHP-FPM в тот же временной интервал; сам код 500 не раскрывает первопричину. Если ошибка возникла после обновления, сопоставьте версии PHP, расширений и недавно изменённых файлов. Не включайте показ внутренних ошибок для публичных посетителей: подробности диагностики должны оставаться в логах.
Перед откатом создайте резервную копию файлов и базы. Восстановление рабочей версии без анализа причин может лишь временно скрыть неисправность; после отката воспроизведите сценарий в тестовой среде.