Перенос при помощи терминала
По этой инструкции вы сможете перенести сайт со стороннего хостинга или с другого аккаунта Timeweb. Для выполнения описанных шагов у вас должен быть опыт работы с SSH. Если вы неуверенно чувствуете себя при работе с SSH-консолью, воспользуйтесь инструкцией по переносу сайта при помощи файлового менеджера.
Предварительная подготовка
Для переноса вам потребуется SSH- или FTP-доступ к отдающему и принимающему серверу. Узнать, как подключиться к нашим серверам по SSH, вы можете в инструкции Подключение по SSH.
Если перенос выполняется с серверов стороннего хостинг-провайдера, информацию о подключении по SSH можно найти в документации хостинга или уточнить у технической поддержки. Мы собрали ссылки на инструкции некоторых популярных хостинг-провайдеров:
Узнать, как подключиться к нашим серверам по FTP, вы можете в инструкции Подключение по FTP.
Информацию о получении FTP-доступа к стороннему серверу также можно найти в документации хостинга или запросить у поддержки. Ниже — ссылки на инструкции тех же популярных хостинг-провайдеров:
Если на отдающем хостинге используется панель управления, получить данные для подключения по FTP можно по этим инструкциям:
Копирование файлов сайта
Для начала переноса подключитесь по SSH к серверу, на который будет перенесён сайт.
Чтобы избежать путаницы, рекомендуем сначала скопировать файлы во временную директорию, а уже затем перенести их в директорию сайта.
Создайте временную директорию tmp
:
mkdir tmp
Перейдите в нее:
cd tmp
Запустите копирование файлов с помощью команды:
rsync -arpPvt --log-file=perenos.log login@IP:путь/к/директории_сайта ./
Где:
login
— логин аккаунта на старом хостинге;IP
— IP-адрес сервера на старом хостинге;путь/к/директории_сайта
— путь к директории с файлами сайта (уточнить его можно в поддержке прежнего хостинга).
Нажмите «Enter» и подтвердите подключение, введя yes
. Затем укажите пароль от аккаунта на старом хостинге — начнется копирование файлов.
Копирование файлов по FTP
- Подключитесь по FTP к отдающему серверу с помощью любого FTP-клиента, например, FileZilla, и скачайте файлы сайта на свой компьютер.
- Подключитесь по FTP к своему аккаунту Timeweb.
- Создайте временную директорию
tmp
в корневой директории вашего аккаунта с помощью FTP-клиента. - Загрузите файлы с компьютера во временную директорию.
Создание нового сайта
После копирования файлов сайта, создадим новый сайт. Для этого перейдите в раздел «Сайты» — «Мои сайты» и нажмите «Создать сайт». Укажите имя директории сайта и, при необходимости, комментарий.
Теперь подключитесь к серверу по SSH. В директории сайта на данный момент находятся файлы заглушки. Удалим их:
rm -rf ./имя_сайта/public_html
Переместим файлы из временной директории в директорию сайта:
mv ~/tmp/site/public_html ~/директория_сайта
Где:
~/tmp/site/public_html
— путь к файлам сайта, скопированным на этапе «Копирование файлов сайта». Обратите внимание, что файлы могут находиться не вpublic_html
, а сразу в корневой директории — это зависит от особенностей хостинга, с которого осуществляется перенос.~/директория_сайта
— путь к директории сайта, созданного ранее.
Привязка технического домена
При переносе сайта мы рекомендуем использовать технический домен. Технический домен — это бесплатный тестовый домен. Благодаря использованию технического домена вы сможете избежать простоя «боевого» сайта, так как он продолжит работать на старом хостинге до того момента, пока вы полностью не убедитесь в работоспособности перенесенного сайта.
Создать технический домен можно в разделе «Домены» → «Купить домен». Нажмите на меню выбора доменной зоны и укажите в поиске одну из доступных зон:
tw1.su
tw1.ru
twc1.net
webtm.ru
Выберите понравившуюся доменную зону, нажав на нее.
Придумайте доменное имя и нажмите на кнопку «Зарегистрировать».
На следующем экране можно сразу привязать домен к нужному сайту. Если выбран не тот сайт, нажмите на его имя и измените привязку.
Завершите регистрацию домена, нажав на кнопку «Зарегистрировать домен».
Перенос базы данных
Для начала необходимо создать дамп базы данных. Это файл, содержащий полную копию базы. Для его создания, подключитесь по SSH к серверу, с которого выполняется перенос, и выполните команду:
mysqldump -u'база_данных' база_данных -p'пароль_базы_данных' > имя_дампа.sql
Перенесите полученный дамп на сервер, где будет размещён сайт. Подключитесь к нему по SSH и выполните команду:
scp login@IP:/путь/к/дампу.sql ./
Где:
login
— логин аккаунта на старом хостинге;IP
— IP-адрес сервера на старом хостинге;/путь/к/дампу.sql
— путь к файлу дампа.
После этого файл дампа будет лежать в корне вашего аккаунта.
Теперь необходимо создать базу данных. Для этого перейдите в раздел «Базы данных» и нажмите на кнопку «Создание новой базы данных», укажите имя и пароль для новой базы и нажмите на кнопку «Сохранить».
Затем снова подключитесь к серверу по SSH и загрузите дамп в новую базу:
mysql -u'база_данных' база_данных -p'пароль_базы_данных' < имя_дампа.sql
Настройка конфигурационных файлов CMS
После необходимо внести правки в конфигурационный файл вашего сайта, указав в нем корректные реквизиты подключения к базе данных.
Для отдельных CMS также могут понадобиться дополнительные настройки.
Мы описали необходимые действия для наиболее популярных CMS. Все изменения будут применяться из корневой директории сайта. Чтоб перейти в нее, выполните команду:
cd ./имя_сайта/public_html
Wordpress
Обновите реквизиты подключения к базе данных в конфигурационном файле wp-config.php
.
Откройте файл:
nano wp-config.php
Найдите и отредактируйте строки:
define('DB_NAME', 'имя_БД');
define('DB_USER', 'имя_БД');
define('DB_HOST', 'localhost');
define('DB_PASSWORD', 'пароль');
Также рекомендуем добавить в конец файла wp-config.php
следующие строки, чтобы отменить привязку сайта к конкретному домену:
if(isset($_SERVER['HTTPS'])) {
$schema = 'https://';
}
else {
$schema = 'http://';
}
define('WP_HOME', $schema.$_SERVER['SERVER_NAME']);
define('WP_SITEURL', $schema.$_SERVER['SERVER_NAME']);
После проверьте работу сайта по техническому домену.
Если сайт работает некорректно, попробуйте выполнить замену вхождений, чтобы везде был указан технический домен. Сделать это можно с помощью команды:
wp search-replace старый_домен новый_домен
Bitrix
Обновите реквизиты подключения к базе данных в конфигурационных файлах dbconn.php
и .settings.php
.
Откройте файл:
nano ./bitrix/php_interface/dbconn.php
Найдите и отредактируйте строки:
$DBLogin = "имя_БД";
$DBPassword = "пароль";
$DBName = "имя_БД";
Откройте файл:
nano ./bitrix/.settings.php
Отредактируйте строки:
'database' => 'имя_БД',
'login' => 'имя_БД',
'password' => 'пароль',
Проверьте работу сайта по техническому домену.
В панели администратора откройте «Настройки» → «Настройки продукта» → «Сайты» → «Список сайтов» → «Сайты» и выберите ваш сайт. Если в полях «Доменное имя» или «URL сервера» указаны значения, обновите их, указав технический домен.
Сохраните настройки и проверьте работу сайта.
Drupal
Укажите новые реквизиты подключения к базе данных в конфигурационном файле settings.php
.
Откройте файл:
nano ./sites/default/settings.php
Отредактируйте строки:
'database' => 'имя_БД',
'username' => 'имя_БД',
'password' => 'пароль',
Проверьте работу сайта по техническому домену.
Joomla
Укажите новые реквизиты подключения к базе данных в конфигурационном файле configuration.php
.
Откройте файл:
nano ./configuration.php
Отредактируйте строки:
var $user = 'имя_БД';
var $db = 'имя_БД';
var $password = 'пароль';
Проверьте работу сайта по техническому домену.
Иногда для корректной работы сайта может потребоваться изменить переменные $log_path
и $tmp_path
в файле configuration.php
. Эти переменные содержат абсолютный путь к директориям сайта и выглядят следующим образом:
public $log_path = '/home/u/user/joomla/public_html/administrator/logs';
public $tmp_path = '/home/u/user/joomla/public_html/tmp';
Где:
u
— первая буква имени вашего аккаунта;user
— имя вашего аккаунта;joomla
— имя директории вашего сайта.
Измените пути в соответствии с вашей конфигурацией и укажите их в файле configuration.php
.
MODX
Проверьте и при необходимости замените пути в конфигурационных файлах:
config.core.php
/connectors/config.core.php
/manager/config.core.php
/core/config/config.inc.php
В них должен быть указан полный путь к файлам, то есть путь вида:
/home/u/user/modx/public_html/core/model/modx/processors/
Где:
u
— первая буква имени вашего аккаунта;user
— имя вашего аккаунта;modx
— имя директории вашего сайта.
В большинстве случаев достаточно заменить только путь до директории с файлами сайта (/home/u/user/modx/
), так как внутренняя структура сайта сохраняется.
Чтобы не заменять каждую строку вручную, можно воспользоваться SSH-командой sed
такого вида:
sed -i 's%старое_значение%новое_значение%g' ./имя_файла
Например, для замены значения /home/v/v01111/site/
на /home/c/cm03555/modx/
в файле config.inc.php
, необходимо в директории ~/modx/public_html
выполнить команду:
sed -i 's%/home/v/v01111/site/%/home/c/cm03555/modx/%g' ./core/config/config.inc.php
После замены путей необходимо указать реквизиты подключения к БД в конфигурационном файле config.inc.php
:
Откройте файл:
nano ./core/config/config.inc.php
Отредактируйте строки:
$database_user = 'имя_БД';
$database_password = 'пароль';
$dbase = 'имя_БД';
$database_dsn = 'mysql:host=localhost;dbname=имя_БД;
Проверьте работу сайта по техническому домену.
В некоторых случаях может понадобиться очистка кэша. Выполните следующую команду:
rm -rf ./core/cache/
OpenCart
Для настройки подключения к базе данных необходимо отредактировать два файла — config.php
и ./admin/config.php
.
Откройте файл config.php
:
nano ./config.php
Найдите и отредактуируйте строки:
define('DB_USERNAME', 'имя_БД');
define('DB_PASSWORD', 'пароль');
define('DB_DATABASE', 'имя_БД');
После этого откройте и отредактируйте налогичные строки в ./admin/config.php
:
nano ./admin/config.php
Помимо реквизитов для подключения к базе, необходимо указать новый домен.
В файле config.php
найдите и измените строку:
// HTTP
define('HTTP_SERVER', 'http://cb73619-opencart-wsz4i.tw1.ru/');
А в файле ./admin/config.php
— следующие строки:
// HTTP
define('HTTP_SERVER', 'http://cb73619-opencart-wsz4i.tw1.ru/admin/');
define('HTTP_CATALOG', 'http://cb73619-opencart-wsz4i.tw1.ru/');
Проверьте, как указаны пути в конфигурационных файлах config.php
и ./admin/config.php
. Если прописаны полные пути (например: /home/v/v011111/opencart/public_html/catalog/
), их нужно заменить на актуальные.
Чтобы не заменять каждую строку вручную, можно воспользоваться SSH-командой sed
такого вида:
sed -i 's%старое_значение%новое_значение%g' ./имя_файла
Например, для замены значения /home/v/v01111/opencart/
на /home/c/cm03555/opencart/
в файле config.php
, необходимо в директории ~/opencart/public_html/
выполнить команду:
sed -i 's%/home/v/v01111/opencart/%/home/c/cm03555/opencart/%g ./config.php
Перенос домена
После того, как вы убедились в корректной работе сайта по техническому домену, перенесите ваш домен по инструкции: Технический перенос домена в Timeweb.
Если вы переносили сайт на Wordpress и выполняли замену вхождений, не забудьте снова выполнить эту операцию, чтобы прописать в базе фактический домен сайта.