Восстановление магазина из резервной копии - процесс обратный созданию резервной копии с использованием тех же средств. Восстановление не представляет сложности, но важен чёткий порядок действий: восстановление сначала файлов, потом - базы. Следующее требование - восстановление в новой директории, созданной в WWW зоне хостинг аккаунта. Это требование необходимо соблюдать в любом случае - при копировании/переносе магазина на новое место и при замещении магазина резервной копией. После восстановления необходимо скорректировать конфигурацию магазина (значения языковых переменных в главном файле конфигурации config.php, пути к изображениям, права на файлы и т.д.).

Инструкции ниже описывают восстановление файлов магазина из резервной копии. Примеры даны для Unix и Windows серверов. Многие действия выполнимы на сервере или в панели управления хостинга.

Восстановление файлов X-Cart из резервной копии

  1. Зайдите на сервер или в хостинг аккаунт.
  2. Откройте директорию, в которой хранятся все Интернет-проекты, обычно это WWW. Создайте новую папку, в которой будут восстановлены файлы. На Unix сервере следующая shell команда создаёт новую директорию:
      mkdir xcart
    

    На Windows сервере новую папку можно создать в графическом интерфейсе. В итоге должна получиться новая доступная в Интернете директория.

  3. Откройте созданную директорию и загрузите в неё файлы/архив с файлами X-Cart через FTP, SCP, контрольную панель и т.п.
  4. Если вы загрузили архив с файлами, распакуйте его. На Unix сервере поможет команда
      tar -xfv <archive_name>
    

    или

      tar –xzvf <archive_name> # If the archive has file extension *.tar.gz, *.gz or *.zip
    

    или

      tar –xjvf <archive_name> # If the archive has file extension *.tbz.
    

    На Windows сервере архив можно распаковать с помощью WinRAR, WinZIP, PKZip или 7Zip.

  5. Директория X-Cart должна иметь стандартную файловую структуру. Если в ней только одна папка с файлами X-Cart, распакуйте её и перенесите её содержимое в текущую директорию X-Cart.
  6. Исправьте настройки в файле конфигурации /etc/config.php:
    • Откройте файл /etc/config.php в текстовом редакторе.
    • Укажите верные значения следующих языковых переменных:
       [database_details]
       hostspec = "localhost"
       socket   = ""
       port     = ""
       database = "database"
       username = "username"
       password = "password"
       table_prefix = "xc_"
      

      и

       [host_details]
       http_host = "<HOST>"
       https_host = "<HOST>"
       web_dir = "/xcart"
      
  7. Создайте новую базу данных для магазина. На Unix серверах используйте shell команду:
      mysqladmin -u USER -pPASSWORD create NEWDATABASE
    

    После запуска команды введите MySQL пароль, будет создана новая база данных.

Используйте те же имя и адрес MySQL сервера, название MySQL базы данных, логин и пароль к MySQL аккаунту, что указаны в файле конфигурации X-Cart /etc/config.php.

Восстановление базы данных из SQL дампа

При восстановлении базы из SQL дапма таблицы базы перезаписываются. Поэтому важно делать резервную копию текущей базы перед восстановлением данных из дампа. Также, восстановить базу из дампа можно только при условии, что дамп был создан для той же версии X-Cart, на которой происходит восстановление.

Администратор магазина может восстановить базу данных в интерфейсе администратора магазина или вручную. Для восстановления вручную потребуется доступ к OpenSSH или PuTTY, Telnet, phpMyAdmin, MySQL консоль, панель управления на хостинге, удалённый рабочий стол и др. Процесс восстановления будет зависеть от используемых инструментов.

Восстановление базы данных в интерфейсе администратора

  1. Зайдите в панель управления магазина.

  2. Откройте раздел Инструменты / База данных и перейдите на вкладку Восстановить базу; 0.jpg

  3. Восстановите базу данных магазина из SQL дампа как описано ниже.

    Если SQL дамп был создан с помощью Создать SQL файл на вкладке Сохранить базу, т.е. был сохранён в виде файла на сервере (var/backup/sqldump.sql.php):

    • Нажмите кнопку Загрузить дамп с сервера.
    • Появится сообщение о завершении восстановления базы.

    При этом резервная копия текущей базы создаётся автоматически.

    Если SQL дамп был сохранён на компьютере:

    • Нажмите Обзор для выбора файла.
    • Выберите файл SQL дампа.
    • Нажмите Загрузить и восстановить. Появится сообщение о завершении восстановления базы.

Восстановление базы данных по терминальному доступу

  1. Войдите в хостинг аккаунт или на сервер.

  2. Запустите shell команду

    mysql -u USER -pPASSWORD DATABASE < /path/to/dump.sql
    

    Введите MySQL пароль. База будет заполнена данными из SQL дампа.

    Используйте те же имя и адрес MySQL сервера, название MySQL базы данных, логин и пароль к MySQL аккаунту, что указаны в файле конфигурации X-Cart /etc/config.php.

Советы

Следует удалить SQL дамп и архив с файлами магазина из WWW директории хостинг аккаунта или сервера. Эта директория содержит Интернет-проекты и доступна в сети Интернет, поэтому данные магазина находятся в открытом доступе, что небезопасно.

Важно хранить резервную копию на локальном компьютере или на удалённом сервере в директории, недоступной онлайн. Например, если корневая директория на хостинге - /u/user/, а веб-директория - /user/public_html/, SQL дамп архив с файлами следует переместить из /u/user/public_html/ в /u/user//.

Решение проблем

Проблема Причина Решение проблем
Система сообщает о нехватке прав для записи в файлы. У пользователя, запустившего PHP скрипт, нет прав на загрузку файлов в директорию. Установите права на запись на директорию, в которой хотите сохранить SQL дамп, и повторите действие.
Система сообщает о нехватке свободного дискового пространства для осуществления операции. В файловой системе недостаточно свободного пространства. Т.к. некоторые данные были сохранены в файле до появления сообщения об ошибке, прежде всего удалите файл с резервной копией. Затем освободите место и повторите действие или сохраните файл в другом месте.
Задача прервана. Система сообщает, что будет открыта предыдущая страница. Объём памяти, выделенный для скрипта, исчерпан. Увеличьте объём памяти для скрипта изменением значения переменной $memory_limit в файле php.ini. Если у вас нет доступа к файлу php.ini, обратитесь за помощью в поддержку хостинга. Возможно потребуется изменять объём доступной памяти несколько раз, т.к. сложно предугадать, сколько на самом деле потребуется.