apache 500 internal server error

В данной статье мы рассмотрим наиболее вероятные причины возникновения ошибки 500 «Internal Server Error». Причины указаны в порядке вероятности возникновения.

Использование в файлах .htaccess недопустимых на нашем хостинге конструкций, например Options -MultiViews или php_value и php_flag . Вы можете открыть файл .htaccess текстовым редактором и найти строки, в начале которых используются указанные конструкции. Найденные строки можно удалить или добавить # в начале. Файл .htaccess может находиться в корневом каталоге вашего сайта — на том же уровне, что и файлы index.php или index.html или robots.txt.

Скрипт пытается получить больше памяти, чем ограничено параметром memory_limit . Обычно достаточно увеличить этот параметр в панели управления. Увеличивать стоит постепенно, с шагом в 16 — 32 Мб, пока ошибка не пропадет. Новые настройки PHP вступают в силу в течение 3-5 минут.

В панели управления или в php.ini включены не совместимые друг с другом расширения php. Например, одновременное включение eaccelerator и APC, либо eaccelerator и XCache почти наверняка будет приводить к ошибке Segmentation Fault и, как следствие, к ошибке Internal Server Error на сайте.

Если вы редактировали какие либо файлы сайта в ОС Windows, то при сохранении в файл могли добавиться не совместимые с unix-форматом символы переноса строки. Для корректной работы необходимо использовать совместимые с unix-форматом переносы строк. Например, в Notepad++ этот параметр можно настроить в меню «Правка» -> «Формат конца строк» -> «Преобразовать в UNIX-формат».

Слишком долгая работа скрипта (может быть связано, например, с выгрузкой товаров на сайте, либо другими долгими запросами). Если веб-сервер не получает никакого ответа от скрипта в течение 120 секунд, скрипт считается зависшим и его работа принудительно завершается с выдачей ошибки 500. Изменить это ограничение в индивидуальном порядке на виртуальном хостинге нельзя. В качестве решения вы можете запускать выполнение скрипта, разбив данные на части, либо через cron либо напрямую через ssh-соединение.

Скрипт возвращает HTTP-заголовки, которые веб-сервер не может распознать и не понимает как интерпретировать.

Включение лога ошибок apache

Однозначно определить источник ошибки поможет включение лога ошибок. Для этого потребуется зайти в панель управления https://panel.netangels.ru/virtualhosts/ , слева от названия сайта кликнуть на иконку с тремя горизонтальными полосками и выбрать «Журнал ошибок». Когда ошибки возникнут, то в домашнем каталоге на сервере появится файл вида sitename.ru-error.log, где sitename.ru — имя сайта, для которого вы включили лог ошибок.

Логи ошибок сохраняются в обычные текстовые файлы, их можно просмотреть подключившись к хостингу по протоколу FTP. Инструкция по подключению.

При появлении ошибки 500 нужно включить логирование Apache (если используется Apache), также включить логирование ошибок РНР. Если в error_log Apache информации не будет, искать их стоит в программном коде, здесь и окажутся полезными логи РНР.

Если сразу после установки или переноса GetSimple CMS на сервер c установленным, настроенным и работающим Apache, вместо страниц веб-сайта вы получаете ошибку 500 Internal Server Error, то после проверки корректности установленных прав доступа, а также, убедившись в присутствии всех файлов GetSimple CMS в файловой системе веб-сервера, не стоит поддаваться панике и обвинять в происходящем систему управления контентом.

Вместо этого следует попытаться разобраться в причине возникающей ошибки, которая является внутренней ошибкой сервера. В определении причин ошибки 500 поможет изучение логов сервера. Однако если к ним нет доступа, то можно попытаться устранить ошибку, основываясь на том, что чаще всего она возникает в следствие неверного синтаксиса файла .htaccess или наличия в нём неподдерживаемых директив.

Если вы самостоятельно не вносили изменения в корневой файл .htaccess и уверены в его соответствии первоначальному варианту из установки GetSimple CMS, то предположение о неверном синтаксисе может быть сразу отброшено. В качестве наиболее вероятной причины возникновения ошибки 500 следует рассмотреть использование в корневом файле .htaccess директив, устанавливающих настройки веб-сервера Apache для данного каталога.

Если ваш доступ к настройкам Apache ограничен, следует попытаться установить, какая именно из директив в корневом файле .htaccess приводит к возникновению ошибки сервера. Для этого необходимо последовательно закомментировать каждую из директив, проверяя работу веб-сайта. В качестве рекомендации я могу посоветовать начать исследование с отключения директивы Options +FollowSymLinks , так как именно она часто бывает запрещена к использованию в файлах .htaccess на виртуальном хостинге.

В том случае, если закомментирование директив корневого файла .htaccess не привело к устранению ошибки 500 и причина её возникновения до сих пор не установлена, следует обратиться за помощью к администратору веб-сервера.

Оцените статью