Как сделать копию “живого” магазина для разработки в подкаталоге

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

Примечание

Сложность инструкции: 2/3

Шаг 1. Скопируйте файлы магазина в папку

1.1. Cоздайте архив с файлами вашего магазина. Процесс создания архива зависит от того, как был установлен магазин.

  • Если текущий магазин установлен на хостинге с панелью управления cPanel, тогда для получения архива:

    1. Откройте cPanel → Файлы → Диспетчер файлов;
    2. Выделите все файлы и нажмите Сжать;
    3. Выберите созданный архив и нажмите Скачать.

    Важно

    Диспетчер файлов в cPanel может не отображать некоторые файлы, такие как .htaccess например. Перед созданием архива перейдите в Параметры (правый верхний угол) и установите галочку Показывать скрытые файлы (dotfiles). Теперь все файлы вашего магазина будут в архиве.

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

1.2. Создайте новую папку в директории, где установлен ваш магазин CS-Cart.

1.3. Распакуйте архив в созданную папку.

Шаг 2. Создайте базу данных для копии магазина

Чтобы копия магазина работала, необходимо создать для неё отдельную базу данных. Сделать это можно двумя способами: с помощью phpMyAdmin или с помощью SSH и MySQL.

Способ 1. Копирование базы данных через phpMyAdmin

  1. Войдите в личный кабинет phpMyAdmin.

    Важно

    Если ваш сервер использует cPanel, то phpMyAdmin открывается через Базы данных → phpMyAdmin. Некоторые серверы требуют ввести логин и пароль. За подробностями обращайтесь к своему хостинг-провайдеру или администратору сервера.

  2. Откройте вкладку Базы данных в верхней панели и выберите базу данных основного магазина.

  3. Щёлкните по вкладке Операции в верхней панели.

  4. В разделе Скопировать базу данных в введите имя новой базы данных, выставьте настройки так, как показано на картинке, и нажмите Вперёд:

Способ 2. Копирование базы данных через SSH и MySQL

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

Вначале убедитесь, что вам известны имя пользователя, пароль и host для подключения к вашему серверу через SSH. Также понадобятся имя пользователя и пароль MySQL. За этой информацией обратитесь к хостинг-провайдеру или системному администратору.

  1. Откройте командную строку и подключитесь к серверу через SSH:

    ssh username@host
    
  2. Введите свой SSH-ключ.

    Примечание

    Пока вы вводите ключ, курсор не двигается, а вводимые символы не отображаются на экране.

  3. Выгрузите исходную базу данных в файл .sql:

    mysqldump -u[имя пользователя mysql] -p[пароль mysql] [название исходной базы данных] > dbcopy.sql
    
  4. Создайте новую пустую базу данных:

    mysqladmin -u[имя пользователя mysql] -p[пароль mysql] create [название новой базы данных]
    
  5. Импортируйте данные из файла в пустую базу данных:

    mysql -u[имя пользователя mysql] -p[пароль mysql] [название новой базы данных] < dbcopy.sql
    

Шаг 3. Отредактируйте файл config.local.php.

В файле config.local.php прописаны директория, куда устанавливается магазин, название базы данных и пр. Поскольку копия магазина находится в новой папке и у скопированной базы данных новое имя, необходимо отредактировать данные в config.local.php, чтобы магазин работал правильно.

3.1. Передите в папку с копиями и откройте файл config.local.php через FTP-клиент или файловый менеджер в панели управления хостинга. Если вы подключаетесь к серверу через SSH, откройте файл с помощью любого консольного текстового редактора (например, Nano).

3.2. Отредактируйте следующие строки в файле config.local.php:

* Подключение к базе данных
*/
$config['db_host'] = 'localhost';
$config['db_name'] = 'название скопированной базы данных';
$config['db_user'] = 'имя пользователя mysql'; (имя пользователя не меняется)
$config['db_password'] = 'пароль mysql'; (пароль не меняется)

// Название хоста и имя папки, в которой установлено ПО на незащищенном сервере
$config['http_host'] = 'имя домена'; (не меняется)
$config['http_path'] = '/директория, в которой находится копия магазина';

// Название хоста и имя папки, в которой установлено ПО на защищенном сервере
$config['https_host'] = 'имя домена'; (не меняется)
$config['https_path'] = '/директория, в которой находится копия магазина';

Шаг 4. Последние приготовления

4.1. Очистите кэш у копии магазина, удалив папку cache в каталоге var копии CS-Cart. Очистить кэш можно также в панели администратора на странице Администрирование → Хранилище данных → Очистить кэш.

4.2. Обновите URL-адреса витрины скопированного магазина. Для этого войдите в панель администратора, которая теперь находится в имядомена/подкаталог/admin.php. На странице Администрирование → Витрины найдите витрину своего магазина и отредактируйте URL-адрес. Не забудьте также закрыть витрину:

4.3. Если вы используете модуль SEO, необходимо отредактировать также файал .htaccess. Этот файл находится в корневом каталоге скопированного магазина. Откройте файл и отредактируйте следующую строку:

RewriteBase /[впишите полный путь к копии магазина]

Теперь у вас есть “живая” копия магазина в папке. Смело тестируйте обновления и пробуйте различные функции на ней.