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

03.04.2018 14:30 (182 просмотров)

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

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

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

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

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

Что делать? Необходимо включить показ ошибок в настройках хостинга (сервера). Если не знаете как, обращайтесь в их службу поддержки. Кроме того, необходимо включить показ ошибок и в настройках самой системы. Что будет в результате? После включения ошибок Вы по факту не устраните проблему, но зато вместо абстрактной надписи Internal Server Error (что следует читать как "что-то не так с настройками сервера"), Вы увидите реальную причину сбоя.

 

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

 

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

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

 

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

 

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

 

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

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

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

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

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

 

Ошибки, содержащие слово 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-архива. С такой ошибокй нужно обращаться в службу поддержки хостинга

 

 

Ошибка с localcopy.ocmod.xml

Панацеей от проблем с ошибками, начинающимися на ftp_..., является модификатор 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-пользователя. При этом на указанную неправильную папку есть права доступа. В итоге файлы загружаются просто не на свои места. Зачастую пользователи просто оставляют в настройках системы поле "FTP каталог" пустым, и файлы модуля загружаются в корневую папку хостинг-аккаунта, а не сайта. Проверить это можно через ФТП-менеджер.

Установка расширений на OpenCart. Ошибка: Модуля нет в списке модулей   

 

 

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

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 в настройках хостинга или установить этот модуль в случае с выделенным сервером. Если Вы не знаете, как это сделать, то обратитесь в поддержку хостинга.