Ошибка http 500 internal server error является ошибкой на стороне веб-сервера, данный код выводится в браузер при обращении к сайту, также его можно увидеть в логах Apache или Nginx
- неверный синтаксис файла .htaccess. Ошибка в этом случае прямо указана в логе Apache (например, директивы Options -MultiViews или php_value и php_flag при использовании PHP в режиме Fastcgi )
- слишком долгая работа скрипта -в настройках веб-сервера установлены лимиты при превышении которых будет отдаваться ошибка 500
- недостаточно высокое значение параметра memory_limit в файле php.ini
- программные ошибки, формирующие некорректные заголовки HTTP
При появлении ошибки 500 нужно включить логирование Apache (если используется Apache), также включить логирование ошибок РНР. Если в error_log Apache информации не будет, искать их стоит в программном коде, здесь и окажутся полезными логи РНР.
Логирование РНР включается в php.ini, так же задается путь к логу. При использовании PHP-FPM (в т.ч. с Nginx) директива задается в /etc/php-fpm.d/www.conf — дополнительно лучше включить и вывод ошибок на экран, для этого нужно добавить display_errors = on
При нехватке скрипту выделяемой для него памяти в логе РНР будут содержаться сообщения вида:
«Fatal error: Allowed memory size of 67108864 bytes exhausted (tried to allocate 32 bytes) in /home/example.com/www/wp-includes/pomo/streams.php on line 110»
В этом случае нужно увеличить значение memory_limit в файле с настройками php.ini