На этой неделе я арендовал dedicated server у FastVPS по тарифу SDS-2. Решил, так сказать, собрать свои сайты с разных хостингов и положить их воедино в лучшем дата-центре Германии. Мощности выбирались не столь под нужды сайтов, сколько под перспективы и тестирование новых ресурсоемких скриптов. Январская акция, несмотря на начало февраля , меня коснулась, после переписки со службой поддержки (блоггеров они любят, бартер уважают :winked: ). Пришлось впервые разбираться с, новой для меня, панелью управления сервером ISPmanager, что не явилось столь сложным испытанием. Наоборот панель просто шедевр, юзабильность и информативность поражает.
После настройки сервера, главной задачей был качественный перенос сайтов на DLE, так как с ними я преимущественно и работаю, с хостинга на сервер. Решил уделить время написанию подробной статьи, т.к. сам перебрал кучу информации по переносу сайтов и столкнулся на перенесенных сайтах с кучей ошибок :am: И так, читаем внимательно, по пунктам.
Подготовка сайта к переносу на сервер
- Если ваш сайт имеет постоянную аудиторию, не поленитесь за неделю-две оповестить пользователей о переезде на новый сервер или смену оборудования, в связи с чем сайт будет не доступен или будут не доступны какие-либо его функции. Напишите новость на главной сайта и зафиксируйте её. Так же, если имеется twitter акк, освятите информацию там.
- Выключаем сайт. Для этого настройках сайта (/admin.php?mod=options&action=syscon) напротив параметра "Выключить сайт:", ставим "Да". Разлогиневаемся из админ-панели, а соответственно и с сайта (для удобства в завершении переноса).
- Идём в панель регистратора домена сайта и меняем у домена сайта значения NS хостинга на значения NS нового сервера. Тем самым мы разумно используем время обновления NS зон при переносе сайта.
- Если домен сайта не является основным на сервере, то добавляем его в панели управления сервером в разделе "Доменные имена". Если есть возможность (как в панели ISPmanager), ставим галочку "создать www домен", если нет возможности - создаём директорию в которой будет наш сайт в ручную через файловый менеджер панели, либо ftp, sftp и т.п.
Экспорт базы данных сайта с хостинга
- Скачиваем архив со скриптом Sypex Dumper Lite (новая функциональная версия). Распаковываем и кладем скрипт в любую директорию на хостинге, например /public_html/dumper/ и выставляем права 777 (не на скрипт, а на директорию со скриптом). Открываем скрипт в браузере по адресу http://ВашСайт.ru/dumper/dumper.php (где /dumper/ ваша директория со скриптом). Отмечаем "Backup / Создание резервной копии БД" (по умолчанию), выбираем БД "переезжающего" сайта, метод сжатия базы данных и степень сжатия. Лично я сжатие использую при переносе сайтов с большой базой данных (от 50 мб.) и по опыту скажу, что самый эффективный, но долгий метод сжатия - BZip2, а степень сжатия - 7 (по умолчанию). Жмём "Применить" и ждём пока нам не скажут, что бекап успешно создан.
Перенос файлов сайта на сервер
- Скачиваем (если нету) программу WinSCP + русский язык, для управления сервером, защищенного соединения и выполнения unix-команд через терминал.
- Устанавливаем, запускаем, прописываем настройки для подключения к НОВОМУ серверу. В поле "Сервер" пишем ip адрес сервера, порт можно оставить по умолчанию 22. Желательно использовать пользователя который будет в будущем работать с файлами сайта, но если у него нету соответствующих права, тогда root. Прописываем пароль и нажимаем "Войти". Если вы прописали верные настройки, то открывается домашняя директория пользователя. Выбираем директорию которая создалась, при добавлении www домена, или же вы сами её создали, т.е. папку в которую будем копировать наш сайт и заходим в неё.
- Запускаем терминал кликом по 7 иконке слева на панели инструментов или связкой клавиш Ctrl+T. Если попросит дополнительную связь, ставим галочку "больше не показывать" и жмём подключиться.
- В поле ввода команды вводим (пока только вводим!) команду wget:
wget -bcxr -l100 ftp://user:pass@ip/public_html/*
где user - логин пользователя на ftp старого хостинга, а pass - его пароль. ip - адрес старого хостинга, по которому вы заходили на ftp. public_html - директория которую будем переносить на новый сервер.
- После того как ввели свою команду со своими данными, нажимаем "Выполнить". Начнётся копирование файлов со старого хостинга на новый сервер. Посмотреть лог переноса и результаты работы можно, введя команду "tail -f wget-log". Как только в логе будет указано что-то вроде:
FINISHED --(время)-- Downloaded: (количество) files, (размер)M in (минуты)m (секунды)s ((скорость) KB/s)
или ещё что-то приятное, можно приступать к следующему пункту.- Файлы нашего сайта закачались в директорию домена, но расположились по адресу /наша_директория/ip_адрес_старого_хостинга/public_html/ , т.е. не совсем так, как бы нам хотелось. Для того, чтобы переместить файлы так, как надо используем файловый менеджер панели сервера, либо ftp. Так же можно перемещать файлы и директории командой mv в терминал:
mv /наша_директория/ip_адрес_старого_хостинга/public_html/* /наша директория/
* значит перенести всё, что только есть в директории public_html и глубже.
Импорт базы данных сайта на сервер
- В панели управления сервером, в разделе Базы данных создаём MySQL базу, в которую будем импортировать БД сайта.
- Открываем наш скрипт Sypex Dumper Lite, но уже на новом сервере по адресу http://ip_адрес_сервера/dumper/dumper.php
- Ставим отметку "Restore / Восстановление БД из резервной копии", выбираем, недавно созданную MySQL базу данных, и файла базы данных сайта, который мы экспортировали на старом хостинге. Жмём применить и ждём успешного импорта базы данных сайта на новый сервер.
Настройка прав для файлов и изменение доступа к MySQL
- Выставляем права 777 на backup, engine/cache (и всем сложенным каталогам), engine/data, templates (и всем сложенным каталогам), uploads (и всем сложенным каталогам)
- Выставляем права 666 на все файлы, находящиеся глубже директорий engine/cache, engine/data, templates, uploads/fotos и файл uploads/sitemap.xml
- Если на сайте была установлена и не планируется удаляться биржа ссылок SAPE, не забудьте удалить файлы links.bd и words.db или выставить на них права 666, иначе новые ссылки не будут отображаться и соответственно сваляться в Error.
- Открываем файл engine/data/dbconfig.php и меняем данные для доступа к нашей новой базе данных на новом сервере.
- Открываем файла engine/data/config.php и меняем значение параметра "site_offline" (Выключение сайта) на "no", тем самым открыв сайт на новом сервере.
Вот и всё! Теперь следует периодически (2-3 часа) открывать свой сайт: если стоит сообщение о выключенном сайте, то NS домена ещё не обновились, если сайт открыт, значит перенос успешно завершен!
Таким образом за пару дней я перенёс порядка десятка сайтов на DLE. Просьба тем, кто перенёс сайт по описанному методу, отписаться в комментариях, возможно я что-то упустил, т.к. писал после переноса своих сайтов и мог забыть некоторые моменты. Так же буду рад, если кто-то дополнит инструкцию или сделает замечания/указания на ошибки.
Что бы ничего не пропустить, я рекомендую подписаться на блог по RSS, либо по E-Mail.
А так же советую следовать за мной в микроблоге на Twitter и добавить меня ВКонтакте.
А так же советую следовать за мной в микроблоге на Twitter и добавить меня ВКонтакте.