Наиболее частой причиной ошибки 500 (Internal Server Error, внутренняя ошибка сервера) является неверный синтаксис файла .htaccess или наличие в нем неподдерживаемых директив. Чаще всего достаточно закомментировать директиву Options (для этого нужно поставить в начале строки решетку — #), и проблема исчезнет.
Ошибка 500 также может возникать вследствие неправильного обращения с CGI-скриптами:
- CGI-скрипты должны иметь окончания строк в формате UNIX (n), а не в формате Windows (rn). Для этого их надо загружать на сервер по FTP в режиме ASCII.
- CGI-скрипты и папки, в которых они находятся, должны быть доступны для записи только владельцу, то есть иметь права 0755 (drwxr-xr-x).
- В результате работы CGI-скрипта сформированы неправильные HTTP-заголовки ответа. В этом случае для решения проблемы полезно обратиться к error_log (его можно найти в контрольной панели в разделе «Хостинг / Статистика / Лог-файлы / Ошибки»).
Но есть и не очевидная причина проблемы. Если Nginx работает вместе с PHP-FPM (через модуль FastCGI), то ошибку 500 сервера могут вызывать ошибки выполнения PHP, если отключена директива display_errors.
Для начала проверьте лог php-fpm:
tail -f /var/log/php-fpm/www-error.log
## Выводит 10 последних строчек лога
А затем проверьте файл конфигурации /etc/php-fpm.d/www.conf:
listen = /var/run/php-fpm/php-fpm.sock
listen.owner = nobody
listen.group = nobody
user = nginx
group = nginx
**display_errors = on**
## Уточните указанные параметры и включить отображение ошибок
Еще одна возможная причина ошибки – скрипт пытается использовать больше памяти, чем позволяет директива memory_limit. На ошибку укажет лог PHP-FPM, а увеличить лимит можно все в том же файле конфигурации /etc/php-fpm.d/www.conf.