Процесс переноса сайта на Drupal
с одного сервера на другой
1) Прописать локальный домен в файле hosts:
sudo nano /etc/hosts
2) Добавить конфигурацию сайта в Apache/nginx через Ajenti или вручную.
Проверить работу сайта на этом этапе.
3) Подлкючаемся по SSH к удаленному сайту:
ssh <username>@<host>
4) Переходим в корневую директорию сайта (drupal) и создаём его полный архив (файлы + БД):
drush ard --destination=../backup-site.tar --tar-options="--exclude=.git --exclude=tmp/*"
5) Выходим из ssh с помощью команды exit и скачиваем полученный архив командой:
scp username@ip-host:www/backup-site.tar /local/dir/
6) Восстанавливаем архив сайта с указанием пароля от root пользователя mysql:
drush arr site_backup.tar.gz --db-su=root --db-su-pw=<root-password> --overwrite
В результате сайт распакуется в одноименную папку и автоматически создаст базу данных и пользователя (какие были в исходном сайте).
7) Далее остаётся только переместить все файлы в нужную директорию
mv <sitename.ru>/* public_html/
8) Если необходимо добавить репозиторий GIT и загрузить в него все файлы проекта необходимо выполнить команды:
- git init
- git remote add origin <repo-url>
- Прописываем файл .gitignore
- git fetch
- git checkout -t origin/master
Чтобы сбросить все локальные изменения до состояния репозитория необходимо после git fetch выполнить команду:
git reset --hard origin/master
Список полезных команд
Копирование файла по ssh
scp username@host.ru:/remote/dir/filename.txt /local/dir/
Копирование директории по ssh
scp -r username@host.ru:/remote/dir/ /local/dir/
-------------------------------------------------------------------
Создание полного архива сайта
drush ard --destination=../backup-site.tar --tar-options="--exclude=.git --exclude=tmp/*"
Восстановление полного архива сайта
drush arr ../backup-site.rar
Создание архива с выводом процентов (необходима установка приложения "pv")
Исключаем директории .git и файлы tmp/*
tar cf - ./site.ru --exclude=.git --exclude=tmp/* -P | pv -s $(du -sb ./site.ru --exclude=.git --exclude=tmp/* | awk '{print $1}') | gzip > ./site-backup.tar.gz
Распаковка .tar.gz архива
tar -xvzf site-backup.tar.gz
-------------------------------------------------------------------
Создание архива БД
drush cc all && drush sql-dump | gzip > ../db-site.sql.gz
или
mysqldump -u [uname] -p[pass] [dbname] | gzip > /path/to/outputfile.sql.gz
Восстановление архива БД
gunzip < ../db-site.sql.gz | drush sqlc
или
gunzip < ../db-site.sql.gz | mysql -u [uname] -p[pass] [dbname]
-------------------------------------------------------------------
Полезная статья: http://www.grasmash.com/article/migrating-drupal-site-between-servers-drush