Ошибка 500 opencart 2: как найти причину и починить

Ошибка сервера 500. Как её исправить?

Методы решения внутренней ошибки сервера 500

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

Произвольный php сайт

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

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

Ошибка 500 в WordPress

В вордпрессе internal server error 500 возникает по следующим причинам:

  • Неполадки после обновления ядра сайта
  • Конфликты с плагинами
  • Ошибки в . htaccess
  • Превышено время выполнения скрипта

Неполадки после обновления очень сложно отследить. Именно поэтому всегда делайте бэкап перед обновлением! Это убережет вас от случайного возникновения 500 ошибки. Если бэкапа нет, то попытайтесь его запросить у хостинговой компании (в 99% случаев у них будет бэкап за последние сутки или неделю. Можно восстановиться из него). Если же даже хостер не может отдать вам бэкап, то нужно действовать так:

  • Проверить все более простые варианты: например, ошибку в хтаксес
  • Идти в логи сервера и искать проблемный скрипт
  • Определить, почему он выдает ошибку и исправить её

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

Если же ошибка вызвана конфликтом плагинов, то тут проще: отключите все плагины (либо удалите их с сервера, они отключатся автоматически). И включайте их потом по одному. Так вы легко определите конфликтый.

Внутренняя ошибка 500 в Joomla

В Джумле очень часто ошибка 500 возникает при входе в админку. Подход к решению аналогичен написанному выше: диагностика + поиск решения.

Так выглядит ошибка 500 в Джумле

В Joomla лог ошибок лежит в папке logs. Файл называется error.php Если в нем пусто, то посмотрите на логи хостинга (уточните у своего хостера точное месторасположение файла). Скорее всего, вы там увидите скрипт, который выдает ошибку. Ну и дальше уже работайте с этим скриптом, устраняя ошибку.

Иногда ошибка 500 при входе в админку Joomla возникает из-за невозможности записи в папки /logs и /tmp В этом случае временно назначьте права 777 на них (затем обязательно измените на 755 и если ошибка снова проявится — пишите хостеру, т.к. это дыра в безопасности сервера).

Если и это не помогло, то пропишите в configuration.php следующее:

 

public $log_path = ‘full_path/logs’;public $tmp_path = ‘full_path/tmp’;



public $log_path = ‘full_path/logs’;

public $tmp_path = ‘full_path/tmp’;

вместо full_path нужно указать полный путь к папке (именно серверный путь, а не http адрес!).

Этих решений достаточно в 95% случаев для решения данной проблемы. Если проблема не решится, то пишите, разберемся в индивидуальном порядке.

Устраняем ошибку 500 в opencart

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

Вот виновник вопроса (лог модуля vQmod): корень_сайта/vqmod/vqmod.log

Решения два: либо время от времени по крону очищать этот файл, либо обновить vQmod до последней версии (в ней файл обнуляется каждые 7 дней).

Ошибка 500 в Битриксе. Что делать?

Битрикс требователен к ресурсам хостинга, поэтому на слабых серверах может периодически возникать ошибка 500. Решение тут может быть только одно — переезд на более надежный и мощный сервер.

Но перед этим обязательно проверить файл error.log, именно в него пишутся все логи ошибок системы. Битрикс очень плотно работает с файловой системой, для него критичны права доступа, поэтому за ними нужно следить особенно тщательно!

Ошибка 500 (Internal Server Error) — как исправить?

Что это за ошибка?

Ошибка 500 — это Internal Server Error или внутренняя ошибка сервера. Еще ее называют «белый экран», WSOD (white screen of death — белый экран смерти)

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

Server error 500
The website encountered an error while retrieving http://localhost/opencart/2200a1/. It may be down for maintenance or configured incorrectly.

Ошибка 500 чаще всего возникает тогда, тогда есть какая-то серьезная ошибка в коде сайта и интерпретатор не может этот код выполнить.
Эту ошибку бесполезно искать в логе OpenCart или других CMS.
Не поможет так же включение отображения ошибок на сайте:

display_errors = 1;
error_reporting = E_ALL;

Что делать?

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

site.com/error.log

— в папке log выше сайта, напр
log/ 
site.com/

— в папке /var/log/apache2
— в других местах на вашем хостинге в зависимости он настроек вебсервера

Если вы не знаете где у вас на хостинге лог вебсервере — спросите у вашего хостера или почитайте документацию по хостингу.

Логов есть 2

Вебсервер обычно ведет 2 лога:
1. Лог доступа. Файл site.com.access.log. Этот лог вам не нужен, в нем информация кто и когда обращался к вашему сайту.
2. Лог ошибок. Файл site.com.error.log. Этот лог вам нужен.

Нашли лог, что дальше?

Вам нужно открыть файл лога в любом текстовом редакторе и посмотреть что там в самом конце.
Там может быть что-то такое:

[Sat Jan 23 21:31:39.991122 2016] [:error] [pid 29493] [client 127.0.0.1:36811] PHP Fatal error:  Class ‘Controllerdesigntheme’ not found in /var/www/html/opencart/2200a1/system/engine/action.php on line 36

Это значит что в файле /var/www/html/opencart/2200a1/system/engine/action.php
в строке 36 идет вызов класса Controllerdesigntheme, который не найден.
Имея эту информацию уже легко понять в чем проблема в каком файле, в какой строке и чего именно не хватает.

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

[Sat Jan 23 21:31:39.996914 2016] [:error] [pid 29493] [client 127.0.0.1:36811] PHP Stack trace:
[Sat Jan 23 21:31:39.996951 2016] [:error] [pid 29493] [client 127.0.0.1:36811] PHP   1. {main}() /var/www/html/opencart/2200a1/admin/index.php:0
[Sat Jan 23 21:31:39. 996978 2016] [:error] [pid 29493] [client 127.0.0.1:36811] PHP   2. require_once() /var/www/html/opencart/2200a1/admin/index.php: 22
[Sat Jan 23 21:31:39.996988 2016] [:error] [pid 29493] [client 127.0.0.1:36811] PHP   3. Front->dispatch() /var/www/html/opencart/2200a1/system/framework.php:99
[Sat Jan 23 21:31:39.996995 2016] [:error] [pid 29493] [client 127.0.0.1:36811] PHP   4. Front->execute() /var/www/html/opencart/2200a1/system/engine/front.php:29
[Sat Jan 23 21:31:39.997001 2016] [:error] [pid 29493] [client 127.0.0.1:36811] PHP   5. Action->execute() /var/www/html/opencart/2200a1/system/engine/front.php:34
[Sat Jan 23 21:31:39.997007 2016] [:error] [pid 29493] [client 127.0.0.1:36811] PHP   6. call_user_func_array() /var/www/html/opencart/2200a1/system/engine/action.php:44
[Sat Jan 23 21:31:39.997013 2016] [:error] [pid 29493] [client 127.0.0.1:36811] PHP   7. ControllerStartupRouter->index() /var/www/html/opencart/2200a1/system/engine/action.php:44
[Sat Jan 23 21:31:39. 997019 2016] [:error] [pid 29493] [client 127.0.0.1:36811] PHP   8. Action->execute() /var/www/html/opencart/2200a1/admin/controller/startup/router.php:26

Это также важно для понимания как работает OpenCart.

Лог есть, а ошибок там нету.

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

Внутренняя ошибка 500 при экспорте категорий/товаров с использованием OpenCart

ЦзышаньC
Гость