Opencart http error 500: как найти причину и починить

Содержание

Исправить ошибку HTTP ERROR 500 в карточке товара Opencart 3 • freelance job for a specialist • category PHP ≡ Client Ivan Kozlovsky

3 of 3

closed without completion

  1. publication

  2. open for proposals

  3. closed without completion

Всем добрый день!

Необходимо исправить ошибку HTTP ERROR 500 на страницах товара Opencart 3.
Все остальные страницы открываются нормально. Остальной функционал магазина тоже работает.
Ошибки из журнала ошибок в админке:

2021-06-14 8:06:20 — PHP Notice:  Array to string conversion in ***/storage/cache/09/093228d2297d6dc9eefd9bb777322a984ff40658e920c57421e9caf1c891e61b.php on line 31

2021-06-14 8:06:20 — PHP Notice:  Array to string conversion in ***/storage/cache/09/093228d2297d6dc9eefd9bb777322a984ff40658e920c57421e9caf1c891e61b.php on line 35

2021-06-14 8:06:20 — PHP Notice:  Array to string conversion in ***/storage/cache/09/093228d2297d6dc9eefd9bb777322a984ff40658e920c57421e9caf1c891e61b. php on line 39

2021-06-14 8:06:20 — PHP Notice:  Array to string conversion in ***/storage/cache/09/093228d2297d6dc9eefd9bb777322a984ff40658e920c57421e9caf1c891e61b.php on line 47

2021-06-14 8:06:20 — PHP Notice:  Array to string conversion in ***/storage/cache/09/093228d2297d6dc9eefd9bb777322a984ff40658e920c57421e9caf1c891e61b.php on line 76

2021-06-14 8:06:20 — PHP Notice:  Array to string conversion in ***/storage/cache/09/093228d2297d6dc9eefd9bb777322a984ff40658e920c57421e9caf1c891e61b.php on line 80

  • Proposals

    9

  • Discussion

    1

date
online
rating
cost
time to complete

  1.  freelancer isn’t working in the service any longer

  2. 1 day300 UAH

    1 day300 UAH

    Обращайтесь готов решить данную проблему, сделаю без проблем
    опыт работы с opencart большой

  3. 1 day200 UAH

    1 day200 UAH

    Добрый день, реализую вашу задачу, ошибка заключается в то что из массив нельзя получить строку

  4. 1 day300 UAH

    1 day300 UAH

    Добрый день Ivan готов исправить ошибку все сделаю быстро и качественно

  5. 1 day249 UAH

    1 day249 UAH

    обращайтесь, не проблема
    обращайтесь, не проблема
    обращайтесь, не проблема
    обращайтесь, не проблема
    обращайтесь, не проблема

  6. 4392

     96  2

    1 day300 UAH

    Ivan P.

    1 day300 UAH

    Звертайтеся, допоможу виправити помилку в карточці товара. Буду радий співпраці. Дякую.

  7. 1 day200 UAH

    1 day200 UAH

    Здравствуйте, готов обсудить и выполнить, есть необходимый опыт

  8. 1 day300 UAH

    1 day300 UAH

    Добрый день. Если ошибка начала появляться после перехода c PHP 5 на PHP 7.x, то могу исправить, обращайтесь.

  9. 1 day300 UAH

    1 day300 UAH

    Здравствуйте, поправлю сейчас же! Опыт работы с опенкартом огромный!

1 year ago

80 views

Ошибка 500 (Internal Server Error)

500 (Internal Server Error) — внутренняя ошибка сервера — код статуса протокола HTTP означающий, что в конфигурации сервера возникла определенная ошибка или один из его компонентов сообщил об отказе. Ошибку можно увидеть на сайтах построенных на самых разных CMS.

Часто такая ошибка возникает в таких CMS как WordPress, Joomla, Битрикс, OpenCart и других. Поэтому мы рассмотрим самые распространенные причины возникновения данной ошибки и способы ее устранения.

Что означает ошибка 500

Ошибка 500 означает, что программное обеспечение сервера работает, но на его стороне возникают серьезные внутренние ошибки. В результате чего запросы нормально не обрабатываются и в ответ на них клиенту (браузеру посетителя или поисковику), выдается код ошибки 500.

Вообще причин возникновения ошибки 500 может быть огромное множество, рассмотрим те которые встречаются чаще всего.

Стандартная страница ошибки выглядит так:

По каким причинам может показываться данная ошибка и как ее исправить

1. Неправильные права доступа на папки и файлы. Если на PHP файлы скриптов размещенных на вашем хостинге стоят права доступа 777, то исполнение данных скриптов может быть заблокировано сервером и вам будет показана ошибка 500. Происходит это из-за того, что права доступа 777 позволяют всем производить любые изменения с данным файлом, что существенно влияет на безопасность и целостность вашего сайта.

Решение: Проверьте права доступа на папки и файлы сайта. Для папок рекомендованы права доступа 755, для исполняемых скриптов 600, а для всех остальных файлов 644.

2. Очень долгая работа скрипта. На хостингах, кроме PHP ограничений времени на исполнение скрипта, имеется и ограничение со стороны сервера. Поэтому если сервер не получает ответ в течении определенного количества времени, установленного в его конфигурации, работа скрипта принудительно завершается и мы видим сообщение об ошибке 500.

Решение: Попытаться оптимизировать работу скрипта. Можно так же увеличить время ожидания сервера, но только если у вас VPS или выделенный сервер, на виртуальном хостинге это врат ли удастся сделать.

3. В файле .htaccess содержаться не правильные или не поддерживаемые сервером директивы. Файл .htaccess имеет очень строгий синтаксис и если вы производя определенные настройки допустили какие то ошибки то вам также будет показана ошибка 500 Internal Server Error.

Решение: Посмотрите имеется ли в корневой папке сайта файл .htaccess. Если он там есть сделайте его резервную копию и попробуйте вовсе удалить. Если после этого сайт заработал значит причина в нем.

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

[Wed May 15 19:11:50 2013] [alert] [client 219.18.17.18] /home/UXXXXX/vash-sait.ru/www/.htaccess: Invalid command ‘RewritRule’, perhaps mis-spelled or defined by a module not included in the server configuration

Т. е. будет указанна какая директива ошибочна. В данном случае это директива RewritRule, потому что такой директивы нет есть директива RewriteRule и она в данном случае написана с ошибкой. Подробнее о файле .htaccess и его настройке смотрите статью: Файл htaccess и его настройка — более 27 примеров использования.

4. Для своей работы скрипт хочет получить слишком большое количество памяти. Данная причина может быть на виртуальном хостинге, где кроме лимита памяти установленного в PHP отслеживается общее количество памяти потребляемое скриптами. Если данное потребление слишком велико, т. е. больше чем отведено по вашему тарифному плану, то работа скрипта завершается и выдается сообщение об 500 — й ошибке. Сделано это для предотвращения чрезмерной нагрузки на сервер со тороны каждого аккаунта виртуального хостинга.

Решение: Можно попробовать обратиться в службу технической поддержки хостинга, если таким способом устранить ошибку не получится лучше всего сменить хостинг.

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

Рекомендуем ознакомиться:

Подробности

Опубликовано: 28 Октябрь 2013

Обновлено: 28 Октябрь 2013

Просмотров: 114370

Что такое «Внутренняя ошибка сервера HTTP 500» и как ее исправить?

Содержание

Ошибка «Внутренний сервер HTTP 500» является довольно общей, поскольку она может быть вызвана широким спектром проблем. Из-за этого вы можете наткнуться на него довольно часто.

В этой статье объясняется «Ошибка HTTP 500» и способы ее устранения.

Что означает «Внутренняя ошибка сервера HTTP 500»?

Код состояния HTTP «500 — Внутренняя ошибка сервера» является одним из многих 5.X.X. Коды ошибок HTTP (500, 502, 503, 504 и т. д.). Каждый из них указывает на свою проблему, но общий знаменатель, который они разделяют, заключается в том, что они сообщают вам, что что-то не так с сервером веб-сайта.

Ошибка HTTP 500, в частности, указывает на то, что сервер столкнулся с непредвиденной ситуацией, которая помешала ему выполнить запрос.

Другими словами, хост-сервер не может определить точную проблему и отобразить более конкретное сообщение. Вместо этого он отвечает ошибкой «500 Internal Server Error», что означает, что неясно, что не так.

Вы можете увидеть различные варианты сообщений, так как многие веб-сайты и веб-серверы настраивают страницу ошибки.

Некоторые примеры сообщения об ошибке включают:

  • 500 Внутренняя ошибка сервера
  • Внутренняя ошибка сервера 500
  • Ошибка HTTP 500
  • Статус HTTP 500 — Внутренняя ошибка сервера
  • Ошибка 500 Внутренняя ошибка сервера
  • 500 Ошибка
  • 500. Это ошибка

Помимо текста, внешний вид страницы может различаться для разных сайтов. Ниже вы можете увидеть общую версию страницы «Внутренняя ошибка сервера».

В других случаях страница может иметь индивидуальный дизайн, как показано на следующем рисунке.

 

Это лишь несколько примеров страницы с ошибкой, и вы можете увидеть ее в бесчисленных вариантах. Независимо от того, как выглядит страница, она всегда имеет одно и то же значение — есть проблема, которую сервер не может точно определить, и это мешает вам загрузить сайт.

Каковы распространенные проблемы, которые могут вызвать внутреннюю ошибку сервера HTTP 500?

Хотя в определении ошибки указано, что проблема связана с сервером, это не всегда так. Некоторые из распространенных проблем, которые могут вызвать ошибку:

  • Кэш браузера поврежден
  • Временные проблемы с подключением
  • Синтаксические ошибки или неверные правила в файле .htaccess веб-сайта
  • Неправильные права доступа к файлам и папкам
  • Неправильная версия PHP для веб-сайта
  • Поврежденный файл . htaccess
  • Повреждена база данных веб-сайта
  • Проблемы с темами и плагинами WordPress
  • Исчерпан лимит памяти PHP на сайте
  • Повреждены основные файлы WordPress
  • Большие файлы на вашем сайте
  • Проблемы с сервером MySQL

Как исправить ошибку «500 Internal Server»?

Как видно из приведенного выше списка, причины возникновения ошибки весьма разнообразны. Поскольку страница с ошибкой не будет четко указывать проблему, вам может потребоваться устранить несколько возможных причин, пока вы не найдете виновника.

Мы рассмотрим большинство возможных проблем и их решения.

Как исправить «Ошибка HTTP 500» в качестве посетителя?

Как посетитель, единственное, что вы можете сделать, это проверить, не вызывает ли ошибка подключение с вашей стороны. Вы также можете применить следующие действия как владелец веб-сайта, так как это самые быстрые проверки. Если ошибка вызвана локальной проблемой с вашей стороны, приведенные ниже шаги помогут вам сэкономить много времени на поиске и устранении неполадок.

Перезагрузить страницу

«Ошибка HTTP 500» может быть видна только вам, если возникла кратковременная проблема с подключением. Сам веб-сайт может работать нормально, но вы могли попытаться получить к нему доступ во время кратковременного простоя или вашей сети не удалось установить соединение с сервером веб-сайта.

Попробуйте перезагрузить страницу в том же браузере, нажав кнопку Перезагрузить или нажав сочетание клавиш Command+R для Mac, или F5 (Control+F5) для Windows.

Если веб-сайт загружается правильно, проблема была временной, и вы можете прекратить устранение неполадок.

Очистите кеш браузера и файлы cookie

Если веб-сайт не открывается после перезагрузки, ваш браузер может хранить просроченные или поврежденные файлы кеша и файлы cookie. Перезагрузка страницы не удалит их, поэтому вы должны очистить их вручную.

Прочтите это руководство по очистке кэша и файлов cookie в настольных браузерах для получения подробных инструкций.

Ознакомьтесь с этими статьями об удалении кэша на телефоне Android или iPhone, если вы используете мобильное устройство.

Кроме того, вы можете проверить открытие страницы из другого браузера. Например, если вы используете Chrome, попробуйте Firefox или наоборот.

После очистки кеша браузера перезагрузите страницу, чтобы проверить, решило ли это проблему. Если нет, перейдите к следующему шагу.

Посетите веб-сайт, используя другую сеть

Проблемы с подключением, вызывающие «Ошибку HTTP 500», могут возникать во всей вашей сети. В этом случае вы, вероятно, увидите ошибку на любом устройстве в этой сети.

Чтобы проверить, не в этом ли проблема, переключитесь на другую сеть. Например, если вы используете мобильный телефон, подключенный к Wi-Fi, переключитесь на мобильные данные.

Как исправить ошибку внутреннего сервера HTTP 500 с веб-сайта?

В лучшем случае упомянутые выше действия решат проблему. Однако, если ошибка не устранена, вам может потребоваться более глубокое изучение проблемы, поскольку ошибка связана с самим веб-сайтом.

Как владелец сайта или веб-мастер, вы можете выполнить несколько проверок, которые помогут решить проблему «Внутренняя ошибка сервера 500».

Проверьте журналы ошибок веб-сайта

Во многих случаях неправильно сконфигурированные файлы или сценарии являются источниками ошибок веб-сайта. Журналы ошибок могут помочь вам идентифицировать их легче.

Как правило, такие логи должны быть в панели управления вашего хостинга. Пользователи SiteGround могут найти журнал ошибок в инструментах сайта .

Чтобы получить к нему доступ, перейдите в раздел Веб-сайты в Личном кабинете . Откройте инструменты сайта соответствующего сайта, выберите Статистика и нажмите Журнал ошибок.

Вы увидите самые последние ошибки на вашем сайте, обнаруженные сервером. Каждая ошибка будет записана с несколькими ключевыми частями информации:

  • Дата и время ошибки.
  • Описание ошибки.
  • Информация о том, какая папка или файл, возможно, вызывает ошибку.

Ниже вы можете увидеть журнал ошибок, указывающий на проблему с файлом .htaccess .

Эта запись указывает на то, что проблема связана с файлом .htaccess, расположенным в корневой папке веб-сайта. Также указывается, что ошибка связана с отсутствующими аргументами , что означает наличие синтаксической ошибки.

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

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

Ошибки PHP записываются в php_errorlog . Он генерируется автоматически в папке подозрительного PHP-файла. SiteGround , журнал ошибок PHP активен по умолчанию. Если вы ранее деактивировали его или ваш хостинг не включил его, прочитайте это руководство о том, как включить отчеты об ошибках в PHP-скрипте.

Для просмотра журнала ошибок PHP можно использовать диспетчер файлов или FTP-клиент. Перейдите в корневую папку, если ошибка вызвана скриптом, расположенным в корневой папке. Откройте файл php_errorlog, , где вы можете просмотреть ошибки.

php_errorlog показывает общие ошибки PHP. Однако вам может понадобиться более подробный журнал проблемы. Если у вас есть веб-сайт WordPress, вы также можете включить журнал отладки для WordPress, который может отображать больше информации. Подробные инструкции по включению журнала отладки WordPress см. в этом руководстве.

Сброс разрешений для файлов и папок

Другой распространенной проблемой, которая может вызвать «Ошибку HTTP 500», являются неправильные разрешения для файлов и папок на вашем веб-сайте. Если разрешения не позволяют посетителям открывать важные файлы и папки веб-сайта, они могут увидеть страницу с ошибкой.

Стандартные разрешения: 644 для файлов и 755 для папок . Вы можете изменить их с помощью File Manager на панели хостинга или с помощью FTP-клиента .

Для установки разрешений для сайтов WordPress клиенты SiteGround могут использовать инструмент сброса разрешений для WordPress в инструментах сайта .

Если на вашем веб-сайте используется приложение другого типа, прочитайте это руководство о том, как изменить права доступа к файлам и папкам из диспетчера файлов.

В качестве альтернативы, если на панели вашего хостинга нет подобных инструментов, вы можете изменить права доступа через SSH или FTP-клиент.

Изменить версию PHP

Неправильная версия PHP на вашем веб-сайте может привести к истечению времени ожидания PHP-скриптов или фатальным ошибкам. В результате веб-сайт может вернуть «Ошибка HTTP 500».

Проверка переключения версии PHP на более старую или более позднюю версию. Если ошибка исчезнет, ​​это означает, что предыдущая версия была неверной. Держите сайт на только что выбранном.

Пользователи SiteGround могут легко переключать версию PHP всего несколькими щелчками мыши на Инструменты сайта . Подробные инструкции см. в этом руководстве о том, как переключиться на другую версию PHP в инструментах сайта.

Проверьте или заново создайте файл .htaccess

Распространенной причиной «Внутренней ошибки сервера» является проблема в файле .htaccess . Если файл поврежден, он определяет неправильную корневую папку или содержит синтаксические ошибки, обычным результатом является страница «Ошибка HTTP 500».

Исправление синтаксической ошибки в .htaccess

В качестве примера синтаксической ошибки мы можем использовать ранее упомянутую ошибку из журнала ошибок.

 <2022-05-17 14:32:40 UTC [apache][core:alert] [pid 68451] [клиент 35.214.177.225:57966] /home/user/www/sg-testing.com/public_html/.  htaccess: директива  требует дополнительных аргументов 

Чтобы проверить файл, откройте Инструменты сайта веб-сайта. Затем выберите раздел Сайт и откройте Файловый менеджер.

Перейдите в корневую папку веб-сайта, которая является именем сайта/public_html . В нашем примере имя — sg-testing.com, , поэтому путь к папке — sg-testing.com/public_html .

В этой папке вы можете найти файл .htaccess . Выберите файл и нажмите Изменить , чтобы открыть редактор кода.

Теперь вы можете проверить его код. Судя по журналу ошибок, проблема с <ЕслиМодуль>. Проблема заключается в синтаксической ошибке, поскольку в модуле отсутствует косая черта в закрывающем теге .

Добавьте косую черту и сохраните изменения с помощью кнопки Сохранить . Перезагрузите веб-сайт, и теперь он должен загружаться правильно.

Неверная корневая папка веб-сайта указана в .

htaccess

Еще одна распространенная ошибка в .htaccess — неправильно определенная корневая папка для веб-сайта. Обычно это результат одного из следующих случаев:

  • Вы перенесли веб-сайт от другого хостинг-провайдера, где он находился во вложенной папке.
  • Вы развернули сайт на подпапку, а затем переместили его в основную папку домена на том же хостинге.
  • Для веб-сайта WordPress вы установили плагин, который изменил RewriteBase в .htaccess. Плагину может потребоваться дополнительная настройка для работы с измененным кодом, но в настоящее время веб-сайт недоступен из-за «внутренней ошибки 500».

Чтобы лучше проиллюстрировать проблему, мы можем использовать следующий пример.

Обратите внимание на путь /dev в RewriteBase . Этот код указывает серверу загрузить веб-сайт из папки с именем public_html/dev. Поскольку папки не существует, при загрузке страницы с веб-сайта будет отображаться экран «Внутренняя ошибка сервера».

Чтобы устранить проблему, просто удалите путь к подпапке из RewriteBase , чтобы код выглядел так: 9индекс\.php$ — [L]
RewriteCond %{REQUEST_URI} !/(wp-content\/uploads/.*)$
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
Правило перезаписи. /index.php [Л]

# END WordPress

Это код WordPress по умолчанию, определяющий корневую папку для веб-сайта. Подтвердите изменение в File Manager с помощью кнопки Save и перезагрузите веб-сайт. Ошибка больше не должна появляться.

Восстановить файл .htaccess

Другой стандартный сценарий устранения неполадок — заменить файл .htaccess новой копией. Чтобы заменить файл новой копией, откройте File Manager, перейдите к public_html , выберите файл .htaccess и выберите Rename.

Вы можете выбрать любое имя для файла. Например, вы можете назвать его htaccess-old и создать новый файл . файл htaccess .

Если веб-сайт WordPress, откройте панель инструментов WordPress, перейдите к разделу Настройки, и откройте Постоянные ссылки. Просто нажмите на кнопку Сохранить изменения, и ваш сайт создаст новый файл .htaccess с кодом WordPress по умолчанию.

Если ваш сайт не на WordPress, найдите код .htaccess по умолчанию для вашего конкретного приложения. Используйте кнопку Новый файл в Файловом менеджере и назовите новый файл. htaccess . Вставьте код по умолчанию в .htaccess и сохраните изменения.

После установки нового файла .htaccess снова перезагрузите веб-сайт, чтобы проверить, исчезла ли ошибка.

Восстановить базу данных или исправить учетные данные базы данных

Еще одна распространенная проблема, которая может вызвать «500 Internal Server Error», — это поврежденная база данных вашего веб-сайта. Вы можете рассмотреть возможность восстановления базы данных из резервной копии или ее ремонта.

Для WordPress ошибка может возникнуть, если веб-сайту не удается подключиться к базе данных. Убедитесь, что учетные данные установлены правильно в файл wp-config.php .

Подробные инструкции см. в этом руководстве о том, как исправить ошибку «Установка подключения к базе данных» в WordPress.

Отключить плагины для вашего веб-сайта WordPress

Неправильно настроенный плагин также может вызвать «Ошибку HTTP 500» в WordPress. Стандартная процедура — отключать плагины один за другим, пока не найдете виновника.

Если ошибка только на фронтенде, но у вас еще есть доступ к панели администратора WordPress, вы можете отключить плагины из раздела Плагины. Затем выберите Установленные плагины . Из выпадающего Массовые действия меню , выберите Деактивировать . Установите флажок Плагин и нажмите Применить , чтобы деактивировать все плагины.

Во многих случаях ошибка не позволяет вам войти в панель управления WordPress, поэтому вам может потребоваться использовать альтернативный способ.

Популярное предложение, которое вы найдете в Интернете, — переименовать папку wp-content/plugins . Мы не рекомендуем этот метод, так как он может исправить «Ошибку HTTP 500», но может вызвать другие осложнения.

Безопаснее и эффективнее отключить все плагины из Site Tools (если вы являетесь пользователем SiteGround ) или из базы данных.

Прочтите подробные инструкции в следующих руководствах:

  • Как отключить все плагины из инструментов сайта
  • Как отключить все плагины из базы данных сайта

После отключения плагинов перезагрузите сайт. Если веб-сайт исправлен, это явный признак того, что ошибка вызвана одним из плагинов.

Активируйте плагины один за другим. При повторной активации неисправного плагина ошибка вернется. Затем вы можете снова отключить плагины, чтобы получить доступ к панели инструментов и активировать все плагины, кроме проблемного.

Вы можете заменить этот плагин другим или связаться с его разработчиками, чтобы сообщить о проблеме.

Измените тему для вашего веб-сайта WordPress

Плохо настроенная тема также может вызвать «500 Internal Server Error» в WordPress. Чтобы проверить, является ли тема проблемой, вам нужно заменить ее на другую.

Обычно вы можете изменить тему с панели инструментов WordPress веб-сайта. Однако во многих случаях постоянная ошибка «HTTP 500 Error» не позволяет вам войти в систему.

Прочтите это руководство о том, как изменить тему WordPress из базы данных для получения дополнительной информации.

Увеличьте лимит памяти PHP веб-сайта

«Ошибка HTTP 500» также может быть вызвана скриптами PHP, которые превысили лимит памяти вашего веб-сайта. По умолчанию ограничение для всех планов SiteGround установлено на 9.0089 512М . Однако для вашего веб-сайта WordPress может быть установлено более низкое значение. Чтобы увеличить лимит памяти, следуйте инструкциям из этого руководства о том, как увеличить лимит памяти WP.

Восстановить резервную копию веб-сайта

Если ни одно из решений не помогло решить проблему или вам сложно их реализовать, вы можете рассмотреть возможность восстановления веб-сайта из резервной копии. Восстановление веб-сайта отменит все изменения, которые изначально вызвали ошибку.

Пользователи SiteGround могут ознакомиться с этим подробным руководством по инструменту резервного копирования веб-сайтов.

Проверьте, не содержит ли ваш веб-сайт большие файлы.

Еще одна распространенная причина этой ошибки — наличие очень большого файла на вашем веб-сайте. На серверах виртуального хостинга SiteGround существует ограничение на размер файлов, которые можно открывать через Интернет. Ограничение составляет 8 ГБ, и если ваш веб-сайт содержит файл большего размера, это приведет к указанной выше ошибке.

Проверьте файлы вашего веб-сайта через SSH, FTP или файловый менеджер, чтобы найти тот, который вызывает проблему. Очень часто это логи с ошибками PHP.

На серверах SiteGround файл журнала создается автоматически, если PHP-скрипты вашего сайта выдают какие-либо некритические ошибки или предупреждения во время их выполнения. Имя файла журнала — php_errorlog, и он расположен в том же каталоге, что и скрипт, вызвавший ошибки. Обычно это корневая папка вашего сайта.

Обратитесь к поставщику веб-хостинга

В конечном счете, «Внутренняя ошибка сервера 500» может быть вызвана не конфигурацией вашего веб-сайта. Сервер MySQL может быть недоступен или сервер может быть перегружен. Свяжитесь со службой поддержки вашего веб-хостинга, чтобы они могли проверить состояние сервера и помочь в решении проблемы.

Резюме

HTTP-сообщение «500 Internal Server Error» может быть очень неприятным из-за его неясного характера. Проблема может быть связана с локальной проблемой или ошибкой на веб-сайте или сервере.

Это руководство поможет вам сузить круг причин для более эффективного устранения ошибки.

«Ошибка HTTP 500» — это один из многих кодов ошибок. Прочтите это руководство, чтобы узнать больше о различных кодах ошибок.

Для получения дополнительной информации об устранении других ошибок 5.X.X. коды состояния читайте в следующих статьях:

  • Как исправить ошибку «HTTP 502 Bad Gateway Error»?
  • Как исправить ошибку «Служба HTTP 503 временно недоступна»?
  • Что такое «Ошибка HTTP 504» и как ее исправить?

500 Ошибка в веб-сервере LiteSpeed ​​

Код состояния 500 или «Внутренняя ошибка сервера» означает, что сервер не может обработать запрос по неизвестной причине. Иногда этот код появляется, когда более уместны более конкретные ошибки 5xx.

Наиболее распространенными причинами этой ошибки являются неправильная конфигурация сервера (например, неверный формат .htaccess ), отсутствующие пакеты (например, попытка выполнить PHP-файл без правильной установки PHP), изменения разрешений или прав собственности, неправильная настройка php.ini , обновление PHP и т. д. Все, что сервер не знает как справиться может вызвать ошибку 500 на веб-сайте. Влияние ошибки может варьироваться в зависимости от события, вызвавшего ее.

Прежде чем приступить к действиям по устранению неполадок, рекомендуется определить, связана ли проблема с LiteSpeed ​​или она возникает и с Apache.

Это происходит с Apache?

Если ваш сервер работает на панели управления Apache, такой как cPanel или Plesk, существует простой способ определить, вызвана ли проблема вашим сервером LiteSpeed:

  1. Временно переключиться на Apache
  2. Повторите шаги, привел к проблеме.

Вы можете воспроизвести ошибку под Apache?

НЕТ

Если ошибка не может быть вызвана Apache, то проблема, скорее всего, связана с сервером LiteSpeed. Пожалуйста, откройте тикет в личном кабинете или по электронной почте [email protected] и предоставьте как можно больше подробностей, чтобы мы могли вам помочь.

ДА

Если Apache испытывает те же проблемы, то проблема не связана с веб-сервером LiteSpeed.

Вернитесь к веб-серверу LiteSpeed ​​и продолжайте читать! Несмотря на то, что это не проблема сервера, мы предоставили следующую документацию по устранению неполадок, которая, как мы надеемся, поможет вам найти решение.

Совет

Перегружены? Нет времени или интереса заниматься этими шагами? Мы можем помочь. Привлекайте нашу команду через Почасовая поддержка , и мы выполним устранение неполадок за вас!

Определение области действия

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

Вы можете проверить сервер error_log , stderr.log или журнал ошибок PHP (обычно находится там, где выполняется скрипт PHP), чтобы увидеть, есть ли намек на ошибку. Во время устранения неполадок вы можете включить отчет об ошибках PHP в php.ini . Верните настройки обратно, когда закончите отладку.

 error_reporting = E_ALL & ~E_DEPRECATED & ~E_STRICT -> error_reporting = E_ALL
  display_errors = выкл. -> display_errors = вкл.
  display_startup_errors = Выкл. -> display_startup_errors = Вкл.
  журнал_ошибок = журнал_ошибок
 

Если вы хотите применить описанное выше только для одного домена для быстрого тестирования, вы можете добавить следующее переопределение PHP в домен . htaccess , чтобы включить ведение журнала. Просто закомментируйте или удалите строки после тестирования.

 php_flag display_startup_errors включен
php_flag display_errors включен
php_value error_log errors_log
php_value error_reporting 32767
 

Имейте в виду, что не все 500 ошибок отображаются в журналах, и обычно в файлах журналов нет никаких подсказок. Это усложняет устранение неполадок.

Вот некоторые распространенные причины и несколько примеров, которые могут помочь вам в процессе устранения неполадок.

Изменения прав доступа или владельца

Изменения прав доступа или владельца могут вызвать ошибку 500.

Например, чтобы включить расширение LiteMage в вашей установке Magento через SSH, вам потребуется запустить пользователя без полномочий root. Однако, если вы неправильно запустите команду от имени пользователя root, внешний интерфейс Magento может мгновенно вернуть 500. Исправление состоит в том, чтобы вернуть право собственности на файл и разрешения исходному пользователю.

Иногда нам нужно проверить страницу phpinfo во время устранения неполадок. Когда ssh войдет в систему как root на сервер, перейдите в root документа и создайте phpinfo.php, файл phpinfo.php будет принадлежать root:root вместо user:user .

Иногда может возвращать ошибку 500 при доступе к domain.com/phpinfo.php , если там установлено какое-то ограничение, но не всегда.

Ошибка сервера может отображать следующее:

 [Чт, 07 июня, 21:04:36.4503592018] [: error] [pid 3807521:tid 1397495428] [client 77.82.94.132:9254] SoftException в Application.cpp:382: UID скрипта "/home/vivi/public_html/phpBB2/info.php" меньше, чем min_uid
[Чт, 07 июня, 21:04:36.450651 2018] [core:error] [pid 3807521:tid 1397495428] [client 77.82.94.132:9254] Конец вывода скрипта перед заголовками: info.php
 

Изменение принадлежности файла info.php пользователю :пользователь , как правило, устраняет проблему.

Неисправный .htaccess

Огромный ассортимент вещей 9(.*) http://www.example.com/$1 [P]
Вызовет ошибку 500. Но измените его на

 RewriteRule (.*) http://www.example.com/$1 [R=301,L]
 

и это решит проблему.

Пример 2

... нельзя использовать в .htacess, и это вызовет ошибку 500 для Apache, в то время как LSWS будет игнорировать неподдерживаемую директиву вместо того, чтобы выдавать ошибку 500.

Например, следующее не должно использоваться в .htaccess.

 <Каталог /home/user1/public_html/wp-admin/>
    Запретить от всех
  
 

вместо этого вы можете создать .htaccess в /wp-admin/ и поместить туда директиву.

 Запретить от всех
 

Чтобы убедиться, что неправильная конфигурация в .htaccess является причиной ошибки 500 Internal Server, временно удалите или переименуйте файл .htaccess, а затем попробуйте перезагрузить страницу.

Пример 3

Следующая директива «Псевдоним» в . htaccess вызовет 500 на Apache (LSWS проигнорирует ее, не возвращая 500), поскольку директива «Псевдоним» не разрешена в .htaccess.

 Псевдоним "/" "/home/$USER1/public_html/"
 

Пример 4

Неверный синтаксис для следующей директивы:

 Заголовок всегда установлен Strict-Transport-Security: max-age=63072000; включать поддомены; предварительная загрузка
 

, что приведет к ошибке Слишком много аргументов директивы в error_log:

 [Вт, 11 сентября, 19:59:40.864917 2018] [core:alert] [pid 15738] [client 66.666.76.139:64740] /home/ example/public_html/.htaccess: слишком много аргументов для директивы
 

Правильный синтаксис следующий, и он должен исправить ошибку 500 для Apache:

 Заголовок всегда устанавливает Strict-Transport-Security: "max-age=63072000; includeSubDomains; preload"
 

Пример 5

Неверный синтаксис для следующего:

 Опции Все – Индексы
 

Должно быть:

 Опции -Индексы
 

Пример 6

php_value и php_flag для обработчика mod_php. Большую часть времени будут использоваться php-fpm или lsphp, а mod_php в большинстве случаев считается устаревшим. Когда вы используете php_value или php_flag , Apache вернет ошибку 500. Однако lsphp без проблем поддерживает переопределение php в .htaccess, и при запуске LSWS нет ошибки 500.

Другой уровень правил перезаписи перемещен на неправильный уровень

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

Например, в .htaccess работает следующее:

 RewriteEngine On
  RewriteCond %{REQUEST_FILENAME} !-f
  Правило перезаписи. /index.php [Л]
 

То же самое в конфигурации Apache VirtualHost вообще не работает:

 
    Имя сервера example.com
    DocumentRoot /var/www/example/
    <Каталог /var/www/example/>
        Разрешить от всех
    
    RewriteEngine включен
    RewriteCond %{REQUEST_FILENAME} !-f
    Правило перезаписи.  /index.php [Л]
  
 

Apache не говорит вам, почему он не работает. Это просто не работает. Скорее всего, вы получите статус Error 500 с сообщением в логах следующего вида:

 Запрос превысил лимит в 10 внутренних перенаправлений из-за вероятной ошибки конфигурации. Используйте «LimitInternalRecursion», чтобы увеличить лимит, если это необходимо. Используйте отладку LogLevel, чтобы получить обратную трассировку.
 

Неверные правила перезаписи неуместны в разных каталогах

Следующие правила перезаписи в подпапке неверны, и это приведет к ошибке 500 для LiteSpeed. 9(.*)$ index.php/$1 [L]

Плохой PHP-код

Неверный PHP-код немедленно приведет веб-сайт к 500.

Например, правильный синтаксис должен быть таким:

 $this->getResponse()->setRedirect(Mage::getBaseUrl()) ;
 

Если $ каким-то образом удален:

 this->getResponse()->setRedirect(Mage::getBaseUrl()) ;
 

Это сразу поднимет сайт до 500. Это только один пример. Часто неправильный синтаксис PHP приводит к ошибке 500.

Другой пример:

 
 

Ошибка ввода : на странице phpinfo , которая должна быть ; , приведет к ошибке 500.

PHP Короткий открытый тег, используемый, когда он не включен в php.ini

Когда PHP анализирует файл, он ищет открывающий и закрывающий теги и ?> , которые сообщают PHP о начале и остановке интерпретации код между ними. Парсинг таким образом позволяет встраивать PHP во всевозможные документы, поскольку все, что находится за пределами пары открывающих и закрывающих тегов, игнорируется парсером PHP.

PHP также позволяет использовать короткий открытый тег . Однако он доступен только в том случае, если он был включен с помощью short_open_tag=on в php.ini. Если он не был включен в php.ini, короткий открытый тег на странице вернет ошибку 500.

Код PHP с неправильными настройками конфигурации php

Иногда ошибку 500 бывает нелегко обнаружить. Если вы переместите .htaccess в .htaccess.bak и переместите php.ini в php.ini.bak , а ошибка 500 все еще возникает, это может означать, что в коде PHP что-то не так. Это может быть трудно найти.

У нас был случай с WHMCS. Кто-то поместил неверную настройку в configuration.php :

 $display_errors = E_All;
 

E_All — неправильное значение для параметра PHP $display_errors . Скорее, он предназначен для параметра $error_reporting . $display_errors должно быть равно true / false или на / на . Мы изменили его на true , и это исправило ошибку 500.

 $display_errors = истина;
 

Достигнут предел CloudLinux LVE

При использовании CloudLinux, если сайт ограничен памятью или ограничениями процессов, пользователь может получить 500 ошибок, поскольку сервер не может выполнить сценарий. [[https://docs.cloudlinux.com/index.html?lve.html| Подробнее.]]

Например, вы можете увидеть следующую ошибку:

 2019-01-11 00:14:23.330946 [ОШИБКА] [APVH_xsrvnecw_Sulsphp56:]: не удалось запустить один экземпляр. Достигнут лимит ресурсов!
 

Вышеприведенное указывает на ошибку Cloudlinux. Увеличение LVE для этого пользователя может решить проблему.

Обновление PHP

Иногда, если PHP обновляется с ошибкой, это может вызвать ошибку 500.

Неподдерживаемая версия PHP

Неподдерживаемая версия PHP, используемая сайтом/темой/плагином/модулем, может привести к ошибке 500.

Время ожидания PHP-скриптов

Если ваш PHP-скрипт устанавливает внешние сетевые подключения, может истечь время ожидания подключения. Если будет предпринято слишком много попыток подключения и время ожидания истекло, это вызовет внутреннюю ошибку сервера 500. Чтобы предотвратить эти тайм-ауты и ошибки, убедитесь, что сценарии PHP написаны с некоторыми правилами тайм-аута. Как правило, при подключении к базе данных или удаленным ресурсам сложно поймать ошибку тайм-аута, так как они фактически замораживают скрипт.

Ошибки синтаксиса или кода в вашем сценарии CGI/Perl

Если это веб-страница, оканчивающаяся на .cgi или .pl , которая вызывает ошибку, проверьте свой сценарий на наличие ошибок.

Недостаточно памяти в php.ini

В этом примере мы проверили stderr :

 tail /var/log/httpd/stderr.log
2016-03-01 12:07:03.573 [STDERR] Вт, 1 марта 12:07:03 2016 (12700): Неустранимая ошибка Невозможно выделить сегмент общей памяти размером 134217728 байт: shmat: Невозможно выделить память (12)
 

Мы дополнительно проверили страницу phpinfo и обнаружили, что предел памяти установлен на 128M только. Решение кэша кода операции само по себе равно 128M , поэтому ни на что другое не остается памяти. Это приводит к ошибке 500.

Увеличьте лимит памяти PHP с 128M до 1024M , чтобы устранить проблему.

Слишком много процессов PHP

Если в очереди сервера слишком много процессов, это может привести к превышению ресурсов и ошибке 500.

Apache работает как SuEXEC, а LSWS не на cPanel

В среде cPanel/WHM Apache работает как SuEXEC, а LSWS — нет.

 10.03.2016 15:39:45.601 [ВНИМАНИЕ] [173.245.52.237:51548] [STDERR] Предупреждение PHP: require_once(/home/demowebsites/public_html/goodmail/wp-config.php): не удалось открыть поток : Доступ запрещен в /home/demowebsites/public_html/goodmail/wp-load.php в строке 37.
  2016-03-10 15:39:45.601 [ВНИМАНИЕ] [173.245.52.237:51548] [STDERR] Неустранимая ошибка PHP: require_once(): Не удалось открыть требуемый '/home/demowebsites/public_html/goodmail/wp-config.php' (include_path='.:/opt/cpanel/ea-php70/root/usr/share/pear') в /home/demowebsites/public_html/goodmail/wp-load.php в строке 37
 

Необходимо, чтобы LSWS был установлен так же, как Apache. Включите LSWS PHP SuEXEC, чтобы устранить проблему.

Недостаточно места подкачки

Проверка error. log показывает:

 Не удалось получить или повторно инициализировать VMemBuf. возможно не хватает места подкачки
 Возвращается ошибка 

500. Перемещение каталога подкачки LSWS в раздел с достаточным пространством решит проблему.

Отсутствующие пакеты PHP

Установка PrestaShop возвращает ошибку 500 в Chrome. Проверьте журнал ошибок, и он показывает Пакет php70-json отсутствует. Установите недостающие пакеты, и ошибка 500 исчезнет.

Отсутствует модуль кэширования кода операции

Сайт WordPress возвращает ошибку 500 при использовании go2pay, но в сервере нет подсказки error_log , stderr.log или PHP error_log . Обновление версии PHP и добавление модуля кеша кода операции устраняет проблему. Некоторым приложениям или плагинам может потребоваться кэш кода операции для запуска.

Конфликтующий код модуля PHP

Magento возвращает ошибку 500 и показывает конфликт модулей.

 a:5:{i:0;s:54:"Раздел реестра Mage "umm_top_menu_exists" уже существует";i:1;s:4439:"#0 /home/yourhome/public_html/app/Mage.php( 223): Mage::throwException('Реестр магов k...')
  #1 /home/yourhome/public_html/app/design/frontend/ultimo/default/template/infortis/ultramegamenu/mainmenu.phtml(54): Mage::register('umm_top_menu_ex...', true)
  #2 /home/yourhome/public_html/app/code/core/Mage/Core/Block/Template.php(241): include('/home/furnishyo...')
  #3 /home/yourhome/public_html/app/code/core/Mage/Core/Block/Template.php(272): Mage_Core_Block_Template->fetchView('frontend/ultimo...')
  #4 /home/yourhome/public_html/app/code/core/Mage/Core/Block/Template.php(286): Mage_Core_Block_Template->renderView()
  #5 /home/yourhome/public_html/app/code/core/Mage/Core/Block/Abstract.php(923): Mage_Core_Block_Template->_toHtml()
  #6 /home/yourhome/public_html/app/code/core/Mage/Core/Block/Text/List.php(43): Mage_Core_Block_Abstract->toHtml()
  #7 /home/yourhome/public_html/app/code/core/Mage/Core/Block/Abstract. php(923): Mage_Core_Block_Text_List->_toHtml()
  #8 /home/yourhome/public_html/app/code/core/Mage/Core/Block/Abstract.php(641): Mage_Core_Block_Abstract->toHtml()
  #9 /home/yourhome/public_html/app/code/core/Mage/Core/Block/Abstract.php(585): Mage_Core_Block_Abstract->_getChildHtml('topMenu', true)
 

Отключить/включить некоторые модули Magento

При отключении extendare_EWCore.xml путем изменения с True на false отображается ошибка 500. Удалите файлы кеша Magento и устраните проблему:

 rm -rf var/cache/*
 

Некоторые правила mod_security могут вызывать ошибку 500

Добавление Javascript в плагин WordPress вызывает ошибку 500. Включите ведение журнала отладки LSWS и найдите:

 2018-05-12 04:13:16.673307 [ВНИМАНИЕ] [47.22.54.182:54823#APVH_latampolitics.carinsurancegeorgia.org] правило mod_security [Id '2000145'] активировано! [Сб, 12 мая, 04:13:16 2018] [ошибка] [клиент 47.22.54.182] ModSecurity: Доступ запрещен с кодом 500, [Правило: 'REQUEST_URI|REQUEST_BODY' '. (script|about|applet|activex|chrome)space: >'] [id "2000145"] [rev "1"] [msg "xss"] [серьезность "CRITICAL"]
 

Правило mod_security привело к ошибке 500. Отключите это правило mod_security, чтобы решить проблему.

Сайт взломан

Если ваш сайт взломан, это может вызвать ошибку 500.

В Perl-скрипте отсутствует заголовок Content-Type, может возвращаться 500

Запустите простой perl-скрипт Hello World по адресу http://exmaple.com/cgi-bin/test.pl , но он вернет ошибку 500.

 vi test.pl
<код>
  #!/USR/бен/перл
  print "Привет, мир!\n";

 

Сценарий Perl CGI должен выводить заголовок, HTML-код, а также должен начинаться со специальной первой строки. В этом случае заголовок «Content-type» отсутствует и это не CGI-скрипт. Также имейте в виду, что после print "Content-Type: text/html" есть пустая строка; .

правильный скрипт должен быть:

 
  #!/USR/бен/перл
  print "Тип контента: text/html\n\n";
  print "Привет, мир!\n";

 

Вы можете посмотреть пример здесь.

Набор правил OWASP ModSecurity может вызвать 500 при совместном использовании Imunify360

Если вы используете LSWS ранее, чем 5.4.1 build 7, вы можете увидеть ошибку 500 при одновременном использовании OWASP и Imunify360. LSWS 5.4.1 и более поздние версии должны были решить эту проблему, и пользователь LiteSpeed ​​​​может использовать оба набора правил одновременно.

Набор правил OWASP может конфликтовать с набором правил Imunify360 по умолчанию на сервере, на котором запущен веб-сервер LiteSpeed. Выберите только один набор правил mod_security.

Для наборов правил OWASP, в crs-setup.conf :

 SecAction "id:

0, фаза: 1, нет журнала, проход, t: нет, setvar: tx.crs_setup_version = 302"

в /etc/apache2/conf.d/modsec_vendor_configs/OWASP3/rules/REQUEST-901-INITIALIZATION.conf

 SecRule &TX:crs_setup_version "@eq 0" "id:

1, фаза:1, аудитлог, журнал, отказ , статус: 500, серьезность: КРИТИЧЕСКИЙ, сообщение: "Основной набор правил ModSecurity развернут без настройки! Скопируйте шаблон crs-setup.