Перенос сайта на 1C-Bitrix на наш хостинг
Подготавливаем страницу "сайт закрыт"
Для того, чтобы посетители сайта не вносили изменения в базу данных во время переноса сайта (не заполняли формы, не заказывали товары) сайт нужно будет временно закрыть, но это чуть позже. По желанию, можно вместо стандартной страницы с сообщением о том, что сайт закрыт (красный прямоугольник с каким то текстом на английском на белом фоне) оформить красивую страницу, на которой будет сообщаться о проведении технических работ.
Страница "Сайт закрыт" находится по пути
/bitrix/modules/main/include/site_closed.php
На старом хостинге выполняем архивацию всего сайта
Для этого, необходимо перейти в папку с сайтом и запустить архивацию всех файлов, кроме временных и кэша, при помощи команды tar
Стоит обратить внимание на наличие символьных ссылок на папку bitrix
и upload
. Если они есть, то возможно, их нужно будет архивировать отдельно. Команда ниже может скопировать только сам файл символьной ссылки, но не перейдет по ней, оставив все файлы ядра так и лежать в другой папке.
Подготавливаем файловую структуру
Для этого на нашем хостинге, под нужным пользователем (для каждого заказчика на сервере создается свой пользователь), из его домашней директории (~
) переходим в папку www
и создаем в ней еще одну папку, имя которой должно повторять имя доменна сайта (mysite.com
).
Внутри неё создаем папку, соответсвующую типу сайта.
prod
- production, основной сайт
opt
- поддомен для оптовиков (opt.mysite.com)
dev
- development, копия сайта для разработки (dev.mysite.com)
Если сайт только один (prod) то создаем только эту папку
Если сайтов несколько (например основной и оптовый), и они используют одно и тоже ядро (у них общая папка bitrix), тогда дополнительно создаем папку shared, в которую потом будут помещены папки bitrix
и upload
.
Загружаем полученый архив с сайтом на наш хостинг в соответсвующую папку
Если архив создавался для producton сайта, то переходим в папку prod
и загружаем архив туда. Если для оптового сайта, то в папку opt
. Архив загружаем напрямую со старого сервера, с помощю утилиты scp через ssh:
Где, в этой команде:
<имя_пользователя> - пользователь старого хостинга, напрмер, root <ip_или_домен_сайта> - можно указать как доменное имя (mysite.com) или же ip этого сервера </путь/к/архиву/имя_архива.tar.gz> - полный путь к архиву на старом сервере <имя_архива.tar.gz> - имя, под которым архив будет сохранен на текущем сервере
После скачивания архива необходимо убедиться, что его размер на старом сервере и на нашем (в байтах) совпадают, что архив был загружен полностью. Может быть такое, что при скачивании произошла сетевая ошибка, либо же архив может быть не скачан полностью из-за нехватки места на диске.
Распаковываем скачанный архив в нужной папке
Следует обратить внимание, что при распаковке может не хватить места на диске, за этим нужно следить
После распаковки, если переносится несколько сайтов, и они оба используют одно и то же ядро, то переносим папки bitrix
и upload
в папку shared
, и создаем на них симаольные ссылки для нужных сайтов. Например, для prod
- переходим в папку prod и прописываем следующие команды
Обратите внимание, что не нужно ставить слеш в конце имени папки
Добавляем домен в панели управления хостингом, выпускаем SSL сертификат
Для этого, авторизуемся в панели управления хостингом (cpanel) под нужным пользователем, в разделе WWW / WWW-домены создаем новый домен. Заполняем вкладку "WWW-домен" по примеру на скриншоте. Указываем имя домена, его папку, IP адреса, создаём SSL сертификат.
Вкладки "Дополнительные возможности" и "Журналы" оставляем как есть. На вкладке "Оптимизация WWW-домена" настраиваем кэширование
Обязательно снять галочку open_basedir. Она нужна для разделения прав доступа к папкам между пользователями на сервере, но она сильно тормозит работу с файловой системой, поэтому отключаем её. Для этого необходимо авторизоваться в cpanel под root пользователем, найти созданный домен и отключить данную галочку.
Создаем нового пользователя базы данных и саму базу данных
Подготовим базу данных, в которую мы вскором будем заливать бэкап со старого хостинга. Под нужным пользователем в cpanel переходим в раздел Главное / Базы данных и нажимаем там "Создать". Заполняем все обязательные поля.
Имя базы данных и имя пользователя должны совпадать. В качестве user указывается имя пользователя на хостинге (profi, pk-tis, starmedia), в качестве sitename указывается название сайта (profi-mag, profi-mag_opt, pechi). Пароль создаем с помощью генератора паролей. Записываем себе временно на листочек имя пользователя и сгенерированный пароль, чтобы в дальнейшем прописать их в настройках сайта.
Редактируем файлы конфигурации
Подготовим конфигурацию сайта к работе. Отредактируем файлы bitrix/php_interface/dbconn.php
и bitrix/.settings.php
. Укажем новые параметры соединения с базой данных, а так же убеждаемся, что в обоих файлах отключен дебаг $debug = false
. Дополнительно, в файле bitrix/.settings.php
можно настроить логирование ошибок битрикса в файл
Редактируем .htaccess и настраиваем перенаправления
Перенаправления с HTTP на HTTPS, которые были настроены на старом хостинге, на нашем могут не заработать. Поэтому, можно заранее заменить редиркет на HTTPS на следующую конструкцию:
Так же стоит убедиться, что настроена переадресация с www поддомена на без www
Закрываем доступ к сайту на старом хостинге
Теперь, пришла пора сделать бэкап базы данных со старого хостинга и залить его на наш. Но перед этим необходимо закрыть публичную часть сайта для посетителей, чтобы в базе данных во время переноса не оказалось никаких новых записей.
Для этого, в административной части сайта переходим в Настройки / Настройки продукта / Настройки модулей / Главный модуль
В самом низу его настроек нажимаем на кнопку "закрыть доступ к публичной части"
Создаем бэкап базы данных со старого сервера и копируем его на наш
Заливаем дамп базы
Перенаправляем DNS
http://24whois.ru/?t=nslookup - проверка, применились ли изменения
в консоли (cmd) - nslookup mysite.com
Смена DNS серверов на локальном компе, чтобы обойти кэш провайдеров
ipconfig /flushdns ipconfig /renew
Заходим на сайт и выполняем проверку настроек и редиректов
Не открывая публичную часть проходимся по всем страницам сайта, проверяем, что все нормально работает
Открываем публичную часть
Last updated