Перенос сайта Drupal с сервера или на сервер

Процесс переноса сайта на 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 и загрузить в него все файлы проекта необходимо выполнить команды:

  1. git init
  2. git remote add origin <repo-url>
  3. Прописываем файл .gitignore
  4. git fetch
  5. 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