Opencart — это CMS с открытым исходным кодом для создания интернет-магазинов. Для расширения её базовых возможностей существует много платных и бесплатных модулей от разработчиков со всего мира. Также у CMS большое комьюнити, которое обменивается опытом на тематических сайтах, помогает решать возникающие проблемы и способствует развитию проекта. В статье рассмотрим установку OpenCart на виртуальном сервере c панелью ispmanager и с предустановленным стеком LAMP.
Установка
Скачать CMS можно с официального сайта, а локализованную версию — тут.
Установка на сервер с панелью
Для того, чтобы установить CMS на сайт, размещённый в панели, переходим в корневую директорию данного сайта через файловый менеджер и загружаем скачанный ранее архив.


После того, как архив скачан, распаковываем его (при распаковке выбирается корневая директория нашего сайта):

Далее переносим файлы из распакованной директории CMS в корень нашего сайта. Для этого нужно перейти в директорию, распакованную из архива, выделить все файлы и нажать Копировать
:

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

Пустую директорию и архив можно сразу удалить.

Также следует сразу сменить права на файлы CMS, если вы размещаете их в панели от пользователя root. Выбираем в файловом менеджере корневую директорию, нажимаем на Атрибуты
:


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

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

На следующем шаге можно наблюдать требования к настройке веб-сервера.
При установке CMS предложит проверить, совпадает ли текущая конфигурация сервера с требуемыми параметрами (несовпадения будут выделены красным), их нужно будет исправить. Версия php должна быть от 5.4 и выше, также должны быть установлены необходимые расширения и выставлены разрешения на запись у указанных каталогов и файлов. Если каких-то расширений не хватает — установить их можно с помощью инструкции.


Далее вводим данные для подключения к базе данных.

Готово, CMS установлена, рекомендуется удалить директорию установки install
:

При первом входе в админку сайта появится предложение переместить директорию storage
из корневой директории сайта, сделать это можно очень просто в автоматическом режиме, выбрав директорию из предложенных и нажав Переместить
:

Теперь остается только заполнить сайт данными.
При выборе «Самостоятельного перемещения» нужно будет переместить директорию storage
вручную, как указано в инструкции, и поправить путь к ней в файлах config.php
иadmin/config.php
.

- Переместите
/var/www/www-root/data/www/opencart-test.fvds.ru/system/storage/
в/var/www/www-root/data/www/storage/
- Откройте файл
config.php
и измените егоdefine('DIR_STORAGE', DIR_SYSTEM . 'storage/');
вdefine('DIR_STORAGE', '/var/www/www-root/data/www/storage/');
- Откройте файл
admin/config.php
и измените егоdefine('DIR_STORAGE', DIR_SYSTEM . 'storage/');
вdefine('DIR_STORAGE', '/var/www/www-root/data/www/storage/');
На сервере без панели управления переместить директорию можно при помощи команды:
mv /var/www/www-root/data/www/opencart-test.fvds.ru/system/storage/ /var/www/www-root/data/www/storage/
Установка на сервер с LAMP
Предполагается, что сервер уже подготовлен заранее — установлен LAMP, вручную или из рецепта, выполнены первичные настройки, а именно создана директория сайта, настроен веб-сервер, создана пустая база данных.
Всё, что нам нужно сейчас — это поместить установочные файлы CMS в директорию сайта и дополнить настройки, подключившись к серверу по ssh.
1. Переходим в корневую директорию сайта, на который нужно установить CMS (в нашем примере это open-opencart-test.fvds.ru)
cd /var/www/open-opencart-test.fvds.ru/
2. Скачиваем архив с последней версией opencart
wget --no-check-certificate https://www.opencart.ru/upload/opencart-3.0.3.2-ru.zip
3. Далее распаковываем архив:
unzip opencart-3.0.3.2-ru.zip
После распаковки архива содержимое директории сайта должно выглядеть подобным образом:

Как и в случае с панелью управления, переносим файлы из распакованной директории CMS в корень нашего сайта, только при помощи ввода команд в консоль:
mv ./upload-3032-ru/* ./ или mv ./upload-3032-ru/{.,}* ./
Можем удалять архив и директорию upload-3032-ru и архив CMS:
rm -rf upload-3032-ru
rm opencart-3.0.3.2-ru.zip
и сменить права на файлы:
chown -R www-data:www-data /var/www/open-opencart-test.fvds.ru/
Далее, если всё было сделано верно, можно открыть домен в адресной строке и продолжить установку из браузера:

Примечание
При установке после введения информации для подключения к базе данных и данных авторизации в админке (шаг 3) может возникнуть ошибка 500, которая в логах apache будет описываться так:
[pid 163291] [client 127.0.0.1:46236] PHP Fatal error: Uncaught Exception: Error: Variable 'sql_mode' can't be set to the value of 'MYSQL40'<br />Error No: 1231<br />SET @@session.sql_mode = 'MYSQL40' in /var/www/open-opencart-test.fvds.ru/system/library/db/mysqli.php:40\nStack trace:\n#0 /var/www/open-opencart-test.fvds.ru/system/library/db.php(45): DB\\MySQLi->query()\n#1 /var/www/open-opencart-test.fvds.ru/install/model/install/install.php(35): DB->query()\n#2 /var/www/open-opencart-test.fvds.ru/system/storage/modification/system/engine/loader.php(248): ModelInstallInstall->database()\n#3 /var/www/open-opencart-test.fvds.ru/system/engine/proxy.php(47): Loader->{closure}()\n#4 /var/www/open-opencart-test.fvds.ru/install/controller/install/step_3.php(11): Proxy->__call()\n#5 /var/www/open-opencart-test.fvds.ru/system/storage/modification/system/engine/action.php(79): ControllerInstallStep3->index()\n#6 /var/www/open-opencart-test.fvds.ru/system/engine/router.php(67): Action->execute()\n#7 /var/www/open-opencart-test.fvds.ru/system/engine/router.php(56): Router->execute()\n in /var/www/open-opencart-test.fvds.ru/system/library/db/mysqli.php on line 40, referer: http://open-opencart-test.fvds.ru/install/index.php?route=install/step_3
Исправить её можно, если закомментировать в файле /var/www/ваш_домен/install/model/install/install.php
строку 35:
$db->query("SET @@session.sql_mode = 'MYSQL40'");
После этого установка продолжится.