У любого владельца сайта может возникнуть необходимость перенести сайт на другой хостинг или сделать бекап. Для каждой CMS способ переноса может отличаться, но общая схема одна: перенести файлы по ftp, перенести базу данных, исправить файлы конфигураций.
В случае OpenCart (если нужно либо перенести сайт на другой хостинг, поменять доменное имя, либо просто сделать бекап) ужно выполнить следущие действия:
- Если сайт уже загружен куда либо, с помощью TotalCommander зайти на ftp сервер своего сайта и скачать оттуда все файлы из корневой директории. (там будут такие папки, как admin, catalog, system…), в итоге у Вас будет папка с файлами сайта.
- Следущим шагом нужно сделать дамп базы данных (если его нет). Нужно зайти по адресу, который называется “сервер mysql” либо в панели управления хостингом найти phpMyAdmin. Выбрать там базу данных (их может быть несколько, какая нужна конкретно значится в файле config.php в корне сайта). Когда Вы раскроете нужную таблицу, вверху будет кнопка – экспорт. На следущем экране нужно выбрать быструю выгрузку и получить файл базы данных.
- Для бекапа этих шагов достаточно, если сайт переносится на другой хостинг – правим базу данных: открываем дамп базы текстовым редактором (notepad++ для windows, НЕ стандартным блокнотом) и поиском ищем значение старого домена. К примеру это telepon.com. Новый домен – tilipon.com. Делаем замену по всей базе – telepon.com на tilipon.com. База данных готова.
- Загружаем файлы по ftp на новый хостинг.
- Правим файл конфигурации. Их будет два: первый в корне сайта config.php, второй в папке admin, такой же – config.php. К примеру значится такой текст в файле (они одинаковые почти):
<!--?php // HTTP define('HTTP_SERVER', 'http://telepon.com/admin/'); define('HTTP_CATALOG', 'http://telepon.com/'); // HTTPS define('HTTPS_SERVER', 'http://telepon.com/admin/'); define('HTTPS_CATALOG', 'http://telepon.com/'); // DIR define('DIR_APPLICATION', '/home/val2west/telepon/www/admin/'); define('DIR_SYSTEM', '/home/val2west/telepon/www/system/'); define('DIR_LANGUAGE', '/home/val2west/telepon/www/admin/language/'); define('DIR_TEMPLATE', '/home/val2west/telepon/www/admin/view/template/'); define('DIR_CONFIG', '/home/val2west/telepon/www/system/config/'); define('DIR_IMAGE', '/home/val2west/telepon/www/image/'); define('DIR_CACHE', '/home/val2west/telepon/www/system/storage/cache/'); define('DIR_DOWNLOAD', '/home/val2west/telepon/www/system/storage/download/'); define('DIR_LOGS', '/home/val2west/telepon/www/system/storage/logs/'); define('DIR_MODIFICATION', '/home/val2west/telepon/www/system/storage/modification/'); define('DIR_UPLOAD', '/home/val2west/telepon/www/system/storage/upload/'); define('DIR_CATALOG', '/home/val2west/telepon/www/catalog/'); // DB define('DB_DRIVER', 'mysqli'); define('DB_HOSTNAME', 'telepon.mysql.ukraine.com.ua'); define('DB_USERNAME', 'telepon'); define('DB_PASSWORD', 'telepon'); define('DB_DATABASE', 'telepon'); define('DB_PORT', '3306'); define('DB_PREFIX', 'oc_');</pre> <p>Так же как в базе, в обоих файлах меняем http://telepon.com на http://tilipon.com, выделяем одинаковую для кучи строчек фразу:</p> <pre lang="php">/home/val2west/telepon/www/</pre> <p>и меняем ее на нужную. Как узнать нужную? Надо создать файл в корне сайта info.php. Это текстовый файл с таким содержимым:</p> <pre lang="php"><?php phpinfo(); ?-->
После чего заходим на свой сайт: tilipon.com/info.php и ищем переменную _ENV[“SCRIPT_FILENAME”], в которой и написан нужный путь.
После чего осталось ввести настройки базы данных:define('DB_DRIVER', 'mysqli'); // эту строку не трогаем define('DB_HOSTNAME', 'telepon.mysql.ukraine.com.ua'); // новое имя хоста define('DB_USERNAME', 'telepon'); // новое имя пользователя define('DB_PASSWORD', 'telepon'); // новый пароль define('DB_DATABASE', 'telepon'); // новое название базы данных define('DB_PORT', '3306'); // не трогаем define('DB_PREFIX', 'oc_'); // не трогаем
- Загружаем измененные файлы конфигурации config.php (2 шт.)
- Осталось зайти в phpMyAdmin нового хостинга, нажать кнопку “Импорт” и записать измененную базу данных.
- Чисто теоретически установка должна быть завершена.