Типичные ошибки при установке модулей в OpenCart 2 и OpenCart 3

 

Ошибки при установке модуля через менеджер расширений

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

Внимание! Описание данной ошибки читать обязательно всем!

Ошибка Internal Server Error при установке модуля OpenCart 2

Ошибка Internal Server Error — проявляется тогда, когда в настройках сервера выключен показ ошибок.

Чтобы убедиться, что у Вас отключен показ ошибок в настройках сервера, проверьте настройки с помощью функции phpinfo(). На рисунке показан скрин, как быть НЕ ДОЛЖНО на следующем снимке экрана.

Ошибка Internal Server Error при установке модуля OpenCart 2

Что делать?

Необходимо включить показ ошибок в настройках хостинга (сервера). Если не знаете как, обращайтесь в их службу поддержки.

Что будет в результате?

После включения ошибок Вы по факту не устраните проблему, но зато вместо абстрактной надписи Internal Server Error (что следует читать как «что-то не так с настройками сервера»), Вы увидите реальную причину сбоя. То есть, там будет описание ошибки на английском языке, с которой уже можно работать.

А если не помогло?

Кроме глобальных настроек показа ошибок на хостинге, в OpenCart также есть подобная настройка (см Система — Настройка магазина — Сервер — Пункт «Показывать ошибки»). Почем же я говорю об этом в последнюю очередь? Потому что частенько при глобальном запрете на показ ошибок данная функция OpenCart не срабатывает. Это, конечно, зависит от настроек конкретного хостинга, тем не менее, это весьма распространенное явление.

Внимание!

Проблемы, которые возникают исключительно при установке расширений (модулей) в OpenCart 3 (ocStore 3), вынесены на отдельную страницу — https://opencart-guide.com/post/problemy-s-ustanovkoj-modulej-v-opencart-3/.

К содержанию ↑

Ошибка «Неверный тип файла»

На английском языке эта ошибка называется «Invalid file type!«. Появляется тогда, когда в качестве расширения загружается не тот файл, который нужно. Чаще всего такая ошибка случается при попытке установить модуль по старинке. То есть, на этапе установки пользователь распаковывает установочный архива some-name.ocmod.zip, загружает файлы модуля по FTP и затем пытается установить файл install.xml через менеджер расширений. Однако, чтобы модификатор соответствовал формату, необходимо переименовать файл install.xml на install.ocmod.xml

Есть еще один вариант возникновения такой ошибки.

При скачивании модуля иногда предлагается скачать под конкретную версию, а иногда — одним архивом. Когда для скачивание предоставляется только один архив, это означает, что, скорее всего, в нем находятся установочные архивы для отдельных версий + файлы readme.txt с описание установки.

В общем, пригодные установочный пакет должен иметь расширение *.ocmod.zip (для архивов) или *.ocmod.xml (для отдельных модификаторов).

К содержанию ↑

Кракозябры при установке модуля

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

При установке модуля в OpenCart в описании ошибки показывает кракозябры

  • Во-первых, там все-таки различаются ключевые слова. К примеру, ftp_login(), что уже намекает на то, в чем именно состоит ошибка.
  • Во-вторых, чтобы прочитать это закодированное json-сообщение, можно декодировать его через json_decode().
  • В-третьих, можно переключить язык админки на английский, и тогда описание ошибки будет на английском языке, что будет иметь читаемый вид.

К содержанию ↑

Ошибки, содержащие слово ftp_…()

ftp_login()

Такая ошибка значит, что php-скрипт не смог залогиниться по ФТП с теми данными, что Вы прописали в Система — Настройки — Настройки магазина — Вкладка «FTP».

ftp_chdir()

<b>Warning</b>: ftp_chdir(): Can\’t change directory to ftp.server… : failed: No such file or directory in <b>…/admin/controller/extension/installer.php</b> on line <b>298</b>…

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

ftp_nlist() SyntaxError: JSON.parse: unexpected character at line 1 column 1 of the JSON data OK <b>Warning</b>: ftp_nlist(): listen() failed: Operation not permitted (1) in <b>/…/public_html/admin/controller/extension/installer.php</b> on line <b>327</b> Зачастую ошибка связана с тем, что в настройках ФТП вообще не указан путь к корневой папке сайта. Причем к этим папкам нет прав доступа.

Call to undefined function zip_open()

SyntaxError: JSON.parse: unexpected character at line 1 column 1 of the JSON data <b>Fatal error</b>: Call to undefined function zip_open() in <b>/var/www/html/system/storage/modification/admin/controller/extension/installer.php</b> on line <b>120</b><br /> Такая ошибка появляет и в том случае, когда для загрузки модулей через менеджер расширений используется FTP, и в том, когда установлен модификатор localcopy.ocmod.xml . Ошибка состоит в том, что настройках сервера не включена функция для распаковки zip-архива. С такой ошибокй нужно обращаться в службу поддержки хостинга

К содержанию ↑

Fatal error: Class ‘DOMDocument’ not found

Решение: Необходимо установить библиотеку php-dom. Подробнее эта ошибка описана отдельно — https://opencart-guide.com/post/fatal-error-uncaught-error-class-domdocument-not-found-v-opencart/

На финальном этапе появилась ошибка "Fatal error: Uncaught Error: Class 'DOMDocument'...

К содержанию ↑

copy(filename): failed to open stream

OK

<b>Warning</b>: copy(/var/www/sites/opencart-2102.loc/admin/view/javascript/sortable/CONTRIBUTING.md): failed to open stream: Permission denied in <b>/var/www/sites/opencart-2102.loc/system/storage/modification/admin/controller/extension/installer.php</b> on line <b>284</b>…

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

Ошибка при установке модуля на OpenCartfailed to open stream: Permission denied

К содержанию ↑

mkdir(): No such file or directory in …

<b>Warning</b>: mkdir(): No such file or directory in …

Могут быть 2 причины:

  1. Не настроенные права доступа на папку /system/ — https://forum.opencart.com/viewtopic.php?t=155122
  2. Отсутствие папки /system/storage/upload/ (может быть «потеряна» при манипуляциях с сайтом (переход с версии 1.5.x на версию 2.x или подобное)

Ошибка <b>Warning</b>: mkdir(): No such file or directory при установке модуля OpenCart 2

К содержанию ↑

Модификатору необходим уникальный id код!

Ошибка случается при установке некорректного установочного модификатора (xml-файла). Есть вариант, когда разработчики действительно забывают внести секцию <code>. Этот случай обсуждался вот здесь. Но, кроме этого, точно такая же ошибка выдавалась мне, когда тег <code> присуствовал, а вот вот закрывающий тег </operation> случайно был удален. В этом случае, по идее xml-файл должен был быть перестать валидным, но вместо этого OpenCart ругался на уникальный id-код.

Ошибка " Модификатору необходим уникальный id код!" при установке модуля через OCMOD

К содержанию ↑

invalid argument supplied for foreach() in …/system/storage/modification/admin/controller/extension/installer on line 247

В редких случаях, когда на сайте установлен localcopy.ocmod.xml + еще какой-то модуль «лезет» в установку модулей, бывает новая ошибка invalid supliment argument supliment for foreach() in …/system/storage/modification/admin/controller/extension/installer.php on line 247 Честно говоря, сам я ее еще никогда не решал. И ко мне обращались с ней всего 2-3 раза и я сказал, что это ошибка точно не в моем модуле. Возможно (хотя это не факт), данная ошибка уже была пофиксина в русскоязычном сообществе:

invalid supliment argument supliment for foreach() in .../system/storage/modification/admin/controller/extension/installer.php

К содержанию ↑

Не отображается модуль

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

Такое происходит, если для установки модулей в системе включен ФТП. При этом неверно указан путь к корневой папке сайта.

Зачастую FTP-пользователь создается с правом доступа к корневой папке хостинга, а не конкретного сайта. В итоге файлы загружаются на уровень выше, чем находится папка с сайтом. Проверить, куда загрузились папки модуля, можно через ФТП-менеджер.

Конкретный пример такой ошибки обсуждался здесь — https://opencartforum.com/topic/81003-ne-otobrazhaetsya-modul/

Панацеей от проблем с ошибками, начинающимися на ftp_…, является модификатор localcopy.ocmod.xml. Установите его, и больше не «парьтесь» о правильных настройках ФТП.

Установка расширений на OpenCart. Ошибка: Модуля нет в списке модулей
Еще одна возможная причина, почему модуля нет в списке модулей — это нетипичная папка с языком админки. При загрузке расширений на OpenCartForum требуется только русский и английский языки. И если у Вас другой язык, то надо просто зайти в папку с языковыми файлами и скопировать файл модуля из папки русского языка в любой другой язык, который у Вас используется.

К содержанию ↑

Ошибка в списке модулей при нажатии кнопку «Установить»

Site error: the ionCube PHP Loader needs to be installed

Полный текст ошибки: Site error: the ionCube PHP Loader needs to be installed. This is a widely used PHP extension for running ionCube protected PHP code, website security and malware blocking. Please visit get-loader.ioncube.com for install assistance. Также это может выглядеть следующим образом: Ошибка при установке модуля OpenCart - Ion Cube Loader

Не все модули выдают эту ошибку на этапе ативации в списке модулей. Иногда она вскрывается на этапе захода в настройки модуля или при обращении к какому-то отдельному функционалу.

Данная ошибка связана с тем, что на сервере (хостинге) не установлен IonCube Loader.Что делать? Необходимо включить IonCube Loader в настройках хостинга или установить этот модуль в случае с выделенным сервером. Если Вы не знаете, как это сделать, то обратитесь в поддержку хостинга.

Если в описании ошибки встречается фраза «corrupted file» — значит, при загрузке по FTP не была использована кодировка utf-8

Если даже при загрузке по FTP в режиме кодировки utf-8 (или модуль был установлен через Установка расширений), но ошибка все равно остается, тогда и только тогда это однозначно говорит о поврежденности файлов в модуле. Лишь в таком случае имеет смысл писать об этой ошибке автору модуля

К содержанию ↑

2 ответа к «Типичные ошибки при установке модулей в OpenCart 2 и OpenCart 3»

Добавить комментарий