Основной план
Основной план затрагивает большинство сайтов, на которых не будет изменений за время переноса DNS.
- На целевом сервере создаём необходимый каталог для сайта
- На целевом сервере создаём пользователя и базу данных для сайта
- Пингуем сайт. Сверяем с IP текущего сервера
- На сайте отключаем композит, CDN, сбрасываем кэш
- На сайте отключаем настройки безопасности, связанные с IP и папкой сайта
- На текущем сервере делаем дамп базы данных, кладём в корень сайта
- Заворачиваем сайт на текущем сервере в архив. Маска исключения: /bitrix/cache/*
/upload/resize_cache/* /upload/tmp/* /bitrix/tmp/* /bitrix/managed_cache/* /bitrix/stack_cache/*. - Переносим архив с сайтом на целевой сервер
- Разворачиваем в каталоге для сайта (различается в зависимости от хостинга)
- Переписываем DNS-настройки c IP текущего сервера на IP целевого, в частности это должна быть как минимум изменённая А-запись.
- Меняем права и владельца на приемлемые сервером.
- Права для файлов: 644 (чтение и запись для владельца и чтение для остальных), права для папок: 755 (чтение, запись, запуск для владельца, чтение и запуск для остальных)
- Проверяем настройки PHP: обязательно PHP 5.3+, short_open_tag = On
- Меняем файлы на целевом сервере /bitrix/php_interface/dbconn.php и /bitrix/.settings.php
В них необходимо подставить правильные данные по базе данных.
В .settings.php находим и меняем строки:
- ‘database’ => ‘НАЗВАНИЕБАЗЫ’,
- ‘login’ => ‘ИМЯПОЛЬЗОВАТЕЛЯБД’,
- ‘password’ => ‘ПАРОЛЬБД’
В dbconn.php меняем следующие строки:
- $DBLogin = «ИМЯПОЛЬЗОВАТЕЛЯБД»;
- $DBPassword = «ПАРОЛЬБД»;
- $DBName = «НАЗВАНИЕБАЗЫ»;
Меняем хост вручную, чтобы подключиться напрямую по IP.
Для линукс:
Открываем /etc/hosts под суперпользователем, добавляем строку
123.234.321.0 ваш.домен, где 123.234.321.0 — это IP-адрес целевого сервера
Заходим по домену в админку
Включаем необходимую безопасность, изменив настройки на IP целевого сервера
Включаем правильную корневую папку, если необходимо, в настройках «Сайты»
Подключаем CDN\композит\кэш (если отключали).
Просматриваем файл .htaccess на наличие нерабочих функций
Проверяем 404 на сайте
БОНУС — нюансы и подводные камни при переносе сайта на иной хостинг
Кто-то переносит сайты чаще, кто-то реже. Так или иначе, часто встречаются недокументированные проблемы и сложности, которые не затрагиваются в обычных, типичных и распространенных инструкциях по переносу сайта. По неопытности или незнанию об этом умалчивают.
Я же хочу обратить ваше внимание на некоторые ситуации, чтобы предостеречь начинающих администраторов сайтов и вебмастеров от ошибок и потери работоспособности, данных сайта. Зачем? Потому что некоторые на первый взгляд несложные самостоятельные переезды внезапно затягиваются более чем на сутки
Зачем? Потому что некоторые на первый взгляд несложные самостоятельные переезды внезапно затягиваются более чем на сутки.
Почтовые службы. Никогда не пользуйтесь почтовыми ящиками от хостинга — лучше берите почту Яндекса, Гугла или настраивайте собственный почтовый сервер.
Выбор нового хостинг-сервиса. У большинства приличных команд, оказывающих услуги хостинга есть тестовый период — воспользуйтесь им, если приглянувшийся вам хостинг предлагает такую функциональность. Даже если это 5 или 7 дней (а для ВДС 1-3 дня) — берите. Если об этом ничего не сказано, но отзывы о хостинге хорошие — пишите в ТП, просите предоставить тестовый период. Более чем уверен — вам его дадут.
Когда я переезжал от вышеупомянутого Эскхостинга к Айхору я так и сделал — взял тестовый период, перенес один небольшой сайт. Замерил до переноса скорость отдачи, пинги, время загрузки на старом хостинге с HDD и на новом с SSD — и после переноса, чтобы сравнить. Остался доволен и переехал. Можно было бы конечно еще проверять аптайм (в 2015 году у Айхора он хромал судя по отзывам), но мне было лень.
Помимо такой проверки вам нужно обратить на версии ПО, которое использует хостинг, своевременно ли он их обновляет. Посмотреть просто — вам нужно создать файл phpinfo.php, код которого:
<?php // Показывает информацию о конфигурации PHPphpinfo();?>
Если работаете с требовательными к ресурсам движками, например Друпалом или Джумлой, поставьте для теста и посмотрите — хорошо ли отзываются, не тормозят ли.
Последнее — регулярно делайте бэкапы, не храните бэкапы на том же сервере или на локальном компьютере. Храните их в облаке!
Напоследок, пара видео о переносе сайтов на другой хостинг — для тех кто любит смотреть, а не читать:
Перенос исходных файлов сайта на другой хостинг
Итак, третий шаг. Здесь тоже ничего сложного, ведь с исходниками сайта работать еще проще чем с базой данных — вы наверняка уже делали это и не раз.
Я люблю работать в браузерном менеджере файлов, что в cPanel, что в ISP есть функция архивирования группы файлов или целой папки. Выглядит примерно так (для папки):
Этим действием я заархивирую все файлы, содержащиеся в папке моего сайта в архив .zip. Потом скачаю этот архив, загружу на новый хостинг и распакую его там (предварительно нужно будет создать дополнительный домен, который создаст необходимую папку и привяжет ее к домену).
Перенос этот нужно сделать так, чтобы папки вашего сайта на разных хостингах были идентичными.
Есть и второй способ переноса исходников сайта на новый хостинг — при помощи протокола передачи файлов FTP.
- Подключитесь к старому хостингу по ФТП, используя для этого данные доступа ftp-аккаунта: хост (ip), логин, пароль;
- Скопируйте содержимое корня вашего сайта к себе на компьютер — можно выделить несколько файлов, папок и «перетащить» их к себе;
- Дождитесь пока процесс пофайлового копирования исходников будет завершен — вы легко это увидите по пустой очереди заданий в файловом менеджере;
- Подключитесь к новому хостингу по ФТП, используя уже другие данные для доступа и перекиньте скопированные в предыдущем шаге файлы с локального компьютера на сервер хостинга.
Решайте сами какой из вариантов переноса вам больше подходит — по ФТП или через файловый менеджер в браузере. Я чаще пользуюсь вторым просто потому что был неприятный опыт увода паролей из FTP-менеджера FileZilla.
Перенос базы данных сайта на другой хостинг
Это второй шаг. Большинство сайтов сейчас использует базы данных (см. также что это такое?), из которых система управления сайтом подтягивает данные и отдает пользователю при просмотре.
До сих пор конечно есть небольшие сайты и посадочные промо-страницы (landing pages) на чистом HTML+CSS, которые работают безо всяких БД, в этом случае второй шаг можно пропустить — за неимением самой базы данных. В этом случае переходите сразу к пункту 3 — переносу файлов, ну а я продолжу.
В общем виде, процесс переноса базы данных с одного хостинга на другой заключается в создании физической копии (дампа) вашей базы данных путем экспорта.
Большая часть современных хостингов использует phpMyAdmin для управления базами данных, поэтому я покажу процесс экспорта на примере этой панельки.
Заходим в панель, жмем «Базы данных» из списка выбираем БД для переноса и нажимаем на нее (вы как бы зайдете в нее и увидите список таблиц). Жмите «Экспорт», выбираете «Быстрый», формат «SQL», сохраняете файл .sql на локальный компьютер (она будет загружаться с сервера).
Все готово: дамп БД сделан и готов для импорта.
Теперь идем на ваш новый хостинг, заходим уже там в phpMyAdmin, создаем новую БД с настройками по умолчанию (обычно для русскоязычных сайтов кодировка «utf8_general_ci», но вообще-то надо посмотреть исходную кодировку БД на старом хостинге — она должна совпадать, иначе получите кракозябры и ошибки).
Заходим в БД (таблиц там не будет), жмем «Импорт», выбираем файл на ПК, выбираем кодировку, жмем «Вперед», ждем. В это время phpMyAdmin будет воссоздавать все таблицы и данные в них, но уже на другом хостинге — собственно это нам и нужно было, не так ли?
Перенос сайта OpenCart на хостинг REG.RU
1.
Определите, в какой папке находятся файлы вашего сайта. Например, в панели управления ISPmanager корневая директория указана в разделе WWW-домены:
Перечень файлов сайта на Опенкарт выглядит следующим образом:
2.
Если ваш сайт и база данных размещены на хостинге, заархивируйте папку с файлами сайта и скачайте полученный архив на локальный компьютер. Проконсультироваться по вопросу создания архива с файлами сайта и дампа базы данных вы можете в технической поддержке вашего хостинг-провайдера.
3.
Узнайте, какую базу данных (БД) использует ваш сайт. Для этого перейдите в корневой каталог сайта и в файле config.php найдите строки:
Где:
4.
Перейдите в phpmyadmin. Используйте для входа имя и пароль пользователя базы данных. Кликните по названию БД:
5.
Перейдите во вкладку Экспорт, выберите формат SQL и нажмите ОК:
6.
Дальнейшие действия выполняются на новой услуге хостинга, на которую вы хотите перенести ваш сайт. Если вы еще не заказали хостинг REG.RU, воспользуйтесь инструкцией. Далее войдите в панель управления нового хостинга.
7.
Определите, в какую папку загрузить файлы вашего сайта. Корневая папка создается автоматически при добавлении домена в панель управления хостингом. Если вы уже добавили доменное имя, перейдите к шагу 9.
Рассмотрим процесс добавления домена в панели управления ISPmanager. Перейдите в раздел Доменные имена и нажмите Создать:
8.
Введите Доменное имя, выберите из раскрывающегося списка IP-адрес, поставьте галочку в графе «Создать WWW-домен» и «Создать почтовый домен», если вы планируете пользоваться почтой на хостинге. Нажмите ОК:
9.
Закачайте архив в корневую папку домена по инструкции: шаг 1-5.
10.
Теперь перейдем к импорту базы данных. Для этого понадобится новая база данных и уже созданный дамп старой БД. В разделе Главное выберите пункт Базы данных и нажмите Создать:
11.
На открывшейся странице Новая база данных укажите Имя (при этом к нему автоматически добавляется префикс вашего логина хостинга вида u1234567) и Имя пользователя. Скопируйте пароль, указанный в конфигурационном файле сайта ( шаг 3 ), или сгенерируйте новый Пароль. Затем нажмите Ок:
12.
Перейдите в phpMyAdmin на новой услуге хостинга и выберите базу данных, в которую будет импортирован дамп (резервная копия БД):
13.
Перейдите во вкладку Импорт, нажмите кнопку Выберите файл и загрузите файл с компьютера. Нажмите ОК внизу страницы:
14.
Измените название БД, пользователя и пароль в конфигурационных файлах сайта config.php и admin/config.php см. шаг 3.
Также необходимо изменить значение полей с указанными директориями (после строки // DIR).
Откройте конфигурационный файл config.php. На скриншоте ниже представлен полный путь до корневой папки сайта opencart-reg.ru — «/home/public_html/www/opencart-reg.ru»:
Необходимо изменить полный путь во всех полях, где он указан, на актуальный. Например, для услуг хостинга с панелью управления ISPmanager данный путь обычно имеет вид «/var/www/user/data/www/site_name/», где:
В данном примере полный путь будет выглядеть следующим образом — «/var/www/u0597957/data/www/opencart-reg.ru/». Внесите изменения в конфигурационный файл:
После чего сохраните его и проделайте аналогичные действия с конфигурационным файлом admin/config.php.
15.
Если у вас настроен VQMod кэш, удалите файл vqmod/mods.cache.
16.
Проверьте работоспособность сайта с помощью файла hosts. Прежде чем открыть сайт в браузере, очистите кэш.
Готово. Теперь вы знаете, как осуществить перенос OpenCart на другой хостинг.
Инструкция по переносу сайта на WordPress на хостинг REG.RU
1.
Определите, в какой папке находятся файлы вашего сайта. Например, в хостинг-панели управления ISPmanager корневая директория указана в разделе WWW-домены:
Если вы осуществляете перенос WordPress на хостинг с локального сервера, корневая директория по умолчанию: *Z:\home\localhost\www*.
Вне зависимости от их месторасположения, перечень файлов сайта на WP выглядит следующим образом:
2.
Если ваш сайт и база данных размещены на хостинге, заархивируйте папку с файлами сайта и скачайте полученный архив на локальный компьютер. Проконсультироваться по вопросу создания архива и дампа (резервной копии) базы данных вы можете в технической поддержке вашего хостинг-провайдера.
3.
Определите, какую базу данных (БД) использует ваш сайт. Для этого перейдите в корневой каталог сайта и в файле wp-config.php найдите следующие строки:
Где:
4.
. Используйте для входа имя и пароль пользователя базы данных. Кликните по названию БД:
5.
Перейдите во вкладку Экспорт, выберите формат SQL и нажмите ОК:
6.
Дальнейшие действия выполняются на новой услуге хостинга, на которую вы хотите перенести ваш сайт. Если вы еще не заказали хостинг, воспользуйтесь инструкцией. Далее войдите в панель управления нового хостинга.
7.
Определите, в какую папку загрузить файлы вашего сайта. Корневая папка создается автоматически при добавлении домена в панель управления хостингом. Если вы уже добавили доменное имя, перейдите к шагу 9.
Рассмотрим процесс добавления домена в панели управления ISPmanager. Перейдите в раздел Доменные имена и нажмите Создать:
8.
Введите Доменное имя, выберите из раскрывающегося списка локальный IP-адрес, поставьте галочку в графе «Создать WWW-домен» и «Создать почтовый домен», если вы планируете пользоваться почтой на хостинге. Нажмите ОК:
9.
Закачайте архив в корневую папку домена по инструкции (шаг 1-5).
10.
Теперь перейдем к импорту базы данных. Для этого понадобится новая база данных и уже созданный дамп старой БД. В разделе Главное выберите пункт Базы данных и нажмите Создать:
11.
На открывшейся странице Новая база данных укажите Имя (при этом к нему автоматически добавится префикс вашего логина хостинга вида u1234567) и Имя пользователя. Скопируйте пароль, указанный в конфигурационном файле сайта (шаг 3), или сгенерируйте новый Пароль. Затем нажмите Ок:
12.
Перейдите в phpMyAdmin на новой услуге хостинга и выберите базу данных, в которую будет импортирован дамп (резервная копия БД):
13.
Перейдите во вкладку Импорт, нажмите кнопку Выберите файл и загрузите файл с компьютера. Нажмите ОК:
14.
Измените название БД, пользователя и пароль в конфигурационном файле сайта wp-config.php (см шаг 3).
15.
Если у вас настроен плагин кэширования, очистите папку wp-content/cache:
16.
Проверьте работоспособность сайта с помощью файла hosts. Прежде чем открыть сайт в браузере, очистите кэш.
Готово! Теперь вы знаете, как перенести сайт WordPress на другой хостинг.