Перенос конфигурации сайта в Drupal 8 с помощью drush и git. Перенос друпал
Перенос конфигурации сайта в Drupal 8 с помощью drush и git
В предыдущей статье мы рассмотрели конфигурационную систему в друпал 8. В ней были описаны способы как с помощью админки импортировать и экспортировать конфигурацию сайта. Но это же можно делать и при помощи drush, и при этом с помощью git делать деплой на рабочий сервер.
Месторасположение папок, в которых лежат конфигурационные файлы, определяется в файле settins.php:
$config_directories['active'] = 'sites/default/files/config_tn5XVQ4dh3PByAMeCopfjfLImM2MTKPJHE81D2vdUAcAhTdVgJM7bPuv_4OW9zw7zutkEk_h3A/active'; $config_directories['staging'] = 'sites/default/files/config_tn5XVQ4dh3PByAMeCopfjfLImM2MTKPJHE81D2vdUAcAhTdVgJM7bPuv_4OW9zw7zutkEk_h3A/staging'; $config_directories['vcs'] = '../config_vcs';Две первые папки (active и staging) мы рассмотрели в предыдущей статье , а папка vcs предназначена для гит репозитория. В нее мы будем экспортировать локальную конфигурацию сайта, затем делать push в удаленный репозиторий на рабочем сервере, который будет располагаться в такой же папке vcs. Затем получивший изменения репозиторий с помощью drush импортируем в staging.
Для работы с друпал 8 нам понадобиться drush.В нем для работы с CMI есть следующие команды :
- config-edit (cedit) - Открывает конфигурационный файл в текстовом редакторе.
- config-export (cex) - Экспортирует конфигурацию из активной директории.
- config-get (cget) - Отображает конфигурационное значение или все значения указанного файла.
- config-import (cim) - Импортирует конфигурацию из указанной директории, прописанной заранее в settins.php.
- config-list (cli) - Выводит список имен всех конфигураций.
- config-set (cset) - Устанавливает значения напрямую в указанную конфигурацию.
Рассмотрим несколько примеров:
# Изменим имя сайта и слоган , открыв и отредактировав system.site конфигурацию. local$ drush config-edit system.site # Экспортируем активную конфигурацию сайта в каталог 'vcs'. # Путь до этого каталога определяется в переменной $config_directories[] в файле settings.php (см. Выше). local$ drush config-export vcs local$ git status # On branch master # Changes not staged for commit: # (use "git add <file>..." to update what will be committed) # (use "git checkout -- <file>..." to discard changes in working directory) # # modified: ../config_vcs/system.site.yml # # Закоммитим все изменения которые мы получили. local$ git commit -am "New configuration" # сделаем push на удаленный сервер local$ git push # по ssh протоколу перейдем в рабочий сервер local$ ssh -A [email protected] ############################## # Welcome to dev.server.example.com. # Last login: Wed Feb 26 19:43:14 2014 from localhost dev$ cd www/docroot dev$ git pull # Импортируем все полученные конфиги и увидим diff между текущей конфигурацией и импортируемой. dev$ drush config-import vcs --preview=diffПеренос сайта на Drupal — КОМТЕТ — хостинг
Если Вы захотели перенести на наш хостинг свой сайт на Drupal, Вам прежде всего следует:
- Определится с тарифным планом: рекомендуемые разработчиками требования к проекту на Drupal больше всего подходят для тарифных планов "Профи", "Плюс" и "VIP", которые мы и рекомендуем для данной CMS.
- Зарегистрировать аккаунт (регистрация) с прикрепленным к нему доменом: прикрепленный домен нужен для того, чтобы на сервере для вас создалась дисковое пространство для работы с сайтом. Прикреплять домен можно как при регистрации хостинга, так и после регистрации.
Итак, если вышеописанные условия выполнены, можно переходить к переносу сайта. Следуем инструкции:
- На прежнем хостинге подготавливаем два архива: бекап сайта (архив содержащий все файлы сайта) и дамп БД.
- Заходим по FTP на рабочую площадку Вашего домена нашего хостинга.
- Закачиваем два ранее подготовленных бекапа сайта во временный каталог (рекомендуем закачивать в ~/private). Примечание: дамп БД в принципе закачивать необязательно, так как удобнее будет выполнить импорт БД с помощью инструмента phpmyadmin панели Plesk.
- Из архива с бекапом сайта распаковываем файлы в корень сайта ~/httpdocs
- С помощью панели управления Plesk создаем БД для выбранного домена, а также создаем пользователя БД (Для примера настройки конфигурационного файла, мы создали, например, БД с именем drupaltest_site и пользователя drupaluser, с паролем 123456).
- Выполняем импорт БД либо с помощью консольной комманды mysql, либо с помощью инструмента phpmyadmin панели Plesk, либо с помощью скрипта импорта (например, не менее популярный dumper.php)
Файлы сайта перенесены и подготовлены к настройке, продолжаем:
- Выполняем настройку сайта на предмет подключения к БД. Для этого необходимо редактировать файл ~/httpdocs/sites/default/settings.php следующим образом:$db_url = 'mysql://drupaluser:123456@localhost/drupaltest_site'; /// Если следует обозначить префикс таблиц то меняем и: $db_prefix = 'drupal_'; /// По умолчанию префикс пустой
- Проверяем работу сайта.
Примечание: если зона DNS для вашего домена, после смены ns-серверов у регистратора, еще не обновилась, проверить работу сайта вы можете с помощью предварительного просмотра сайта для вашего домена, добавить которое вы сможете обратившись в службу технической поддержки хостинга.
www.komtet.ru
Перенос сайта на Drupal между серверами при помощи Drush
Периодически возникает необходимость переноса сайтов под управлением Drupal от одного хостера к другому. И если бы небыло такой замечательной консольной проги как drush с ее возможностями - drush archive-dump и drush archive-restore, миграции проходили бы гораздо дольше и сложнее.
Типичный сайт на Drupal состоит из двух основных элементов: файлы (движок и все что накопилось за время работы) и база данных. Для корректной работы на новом месте нужно перенести обе части плюс внести некоторые изменения в загрузку.
Привычный «Cтарый путь» миграции предполагал следующее:
Перемещение базы
- создать новую пустую базу
- создать нового пользователя
- связать пользователя и базу (не забыв про корректные права доступа)
- создать дамп базы на старом месте
- импортировать базу на новый хостинг
Перемещение файловой части
- запаковать файлы сайта в zip или лучше в tar.gz (LinuxWay)
- переместить фалы на новый хостинг
- распаковать
- подредактировать файл settings.php вписав новый данные для доступа к базе и т. п.
- проверить и скорректировать владельца и права доступа на файлы
Новый путь (в светлое будущее)Получаем доступ по SSH, переходим в папку установки Drupal и делаем всего 3 простых манипуляции1. Создаем резервную копию
drush archive-dumpпосле завершения процедуры выдается сообщение с указанием пути где лежит наш архивArchive saved to /home/user/drush-backups/archive-dump .......2. Переносим архив на новый сервер по FTP, но я больше люблю SSH
scp [source-archive] [user]@[target-server]:[target-folder]приблизительно так
scp /home/user/drush-backups/archive-dump/123.20121210_122505.tar.gz [email protected]:/var/www/html/drupal3. Получаем доступ по SSH на новом сервере, переходим в папку с архивом и выполняем команду на подобии такой:
drush archive-restore [source-archive] --destination=./[new-folder-name] --db-url=mysql://[mysql-user]:[mysql-password]@[target-server]/[db-name] --overwriteнапример вот так
drush archive-restore 123.20121210_122505.tar.gz --destination=/var/www/html/site.ru/ --db-url=mysql://c1006_site:megapassword@localhost/c1006_site --overwriteВ результате drush создаст новую папку, распакует туда содержимое архива, распакует базу данных, сделает ее доступной и скорректирует данные в settings.php.
В данном примере однако стоит учитывать, что применим он только в том случае если у вас уже имеется созданная база данных с пользователем. Если же вам необходимо при распаковке дампа, кроме всего прочего, создать новую базу данных и пользователя то к исполняемой команде необходимо добавить
--db-su [mysql-root-user] --db-su-pw [mysql-root-password]Вот собственно и все. Для получения информации о дополнительных возможностях drush выполните команду с флагом --help. Если необходимо получить информацию по конкретной команде то логика команды выглядит так
drush help [command]dematron.ru
Перенос сайта на Drupal » Блог о IT сфере. Главные новости и интересные статьи со всего рунета.
Веб-разработчики должны знать, как осуществляется перенос сайта на Drupal. Такие знания позволят переместить созданный на CMS-системе ресурс с локального сервера, на хостинг интернет-провайдера. С процедурой транспортировки сайта справится даже новичок, при условии, что будут соблюдены все пункты инструкции. Важно помнить о том, что не нужно спешить, чтобы не допустить серьезных ошибок.Резервное копирование
Некоторые пользователи не знают, но перед тем как приступить к переносу сайта, необходимо выполнить резервное копирование. Такая CMS-система, как Drupal, позволяет сделать бэкап двумя различными способами, а именно:
- При помощи стандартных средств SSH;
- При помощи команды drush.
Первый способ достаточно сложный, но благодаря ему процедуру можно выполнить значительно быстрее. К тому же подобное средство имеет гибкие настройки. Пользователь при желании может исключить некоторые каталоги веб-сайта. Для этого достаточно добавить ключ «tar». Чаще всего подобное делается тогда, когда каталог имеет большие объемы и содержит видео или аудио файлы.
В первую очередь необходимо войти в SSH под своим логином и паролем. В открывшемся окне, в поле консоли следует ввести команду [mysqldump]. Важно учесть тот факт, что некоторые хостеры могут отключать такую утилиту. Это же касается и локального сервера. Если утилита сработала, необходимо ввести следующую команду: mysqldump -uname -ppass -hhost db_name > /path/site_dump.sql. Вместо атрибута «name», следует прописать имя пользователя, что касается значения «pass», то вместо него необходимо указать свой пароль. Таким же образом необходимо поступить с параметром «path», указав путь к месту хранения дампа.
Второй способ значительно проще, но его можно использовать только в последних версиях. Пользователю следует перейти в корневой каталог и в консоли прописать следующую команду: drush archive-dump --destination=/home/webmaster/yourdomains/test.ru/backup/ backup_test.tar.gz/. После выполнения операции в директории «backup» появится резервная копия веб-сайта, помещенная в архив «backup_test.tar.gz».
Перенос файлов
Многие специалисты советуют изучить хостинг и панель администрирования. Например, если хостер предоставляет доступ к phpMyAdmin, тогда лучше всего резервную копию создавать через этот же инструмент. Если сделать бэкап через другие элементы, может возникнуть проблемы с кодировкой.
После того, как пользователь создал резервную копию сайта и базы данных, можно перейти непосредственно к переносу. Чтобы переместить все необходимые файлы, необходимо воспользоваться:
- Панель phpMyAdmin;
- Модуль Backup and Migrate;
- Sypex Dumper.
Вебмастеру следует убедиться в том, что хостинг предоставил доступ к базе данных. Если этого не произошло, следует самостоятельно установить БД. Когда все будет готово, можно приступить к переносу файлов. Это можно сделать при помощи FTP сервера.
Если не хочется использовать phpMyAdmin или Sypex, необходимо воспользоваться консолью. Следует заметить, что это не самый простой способ развернуть сайт с базой данных.
В консоли следует ввести следующую команду: mysql -u name -p pass. Вместо указанных параметров, необходимо указать свое имя пользователя и пароль. Теперь вебмастеру следует выбрать рабочую базу данных, указав ее имя. Это можно сделать при помощи команды: USE db_name.Когда база будет выбрана, остается ее развернуть. Достаточно ввести в консоли следующую строку: SOURCE /path-to-your_db/dump_suit.sql. После этого остается лишь подключить сайт к развернутой базе данных.
Настройка развернутого сайта
Создание бэкапа и перенос веб-сайта на новый хостинг займет у пользователя не более 20 минут. Конечно, если веб-ресурс наполнен аудио и видео файлами, перемещение может занять больше времени.
В первую очередь необходимо изменить параметры settings.php файла. Для корректировки, лучше всего использовать notepad++. В открывшемся документе редактируются следующие поля:
- Database;
- Username;
- Password;
- Host.
В том случае, если каждому полю присвоен правильный параметр, все остается без изменений. После подключения БД рекомендуется проверить работоспособность всех подключенных модулей. Для этого рекомендуется войти в панель управления, в раздел модулей. Если все модули, активны, можно перейти к другим настройкам.
При помощи модуля Backup and Migrate, необходимо настроить расписание создания резервных копий. К тому же можно изменить путь для сохранения бэкапов. Закончив с резервными копиями, пользователю необходимо проверить корректно ли отображается текст, картинки и другая информация.
Ошибки переноса
Иногда, даже профессионалы сталкиваются с проблемой, когда после переноса сайта, появляются ошибки или просто не загружаются страницы. Не стоит переживать, практически все проблемы можно быстро устранить.
Если страница отображается не корректно, то есть часть данных, хранящийся в БД не отображается, необходимо проверить файл конфигурации. Часто пользователи при подключении базы вводят неправильный логин или пароль, а иногда и вовсе забывают, произвести корректировку файла. Достаточно подключить БД и все проблемы исчезнут.
Ошибки могут появиться после того, как были перенесены не все файлы с локального сервера на хостинг. Важно, чтобы при копировании не появлялись ошибки, и вес скопированного файла соответствовал тому, что находится на компьютере.
Пользователям, которым сложно разбираться с CMS системой, рекомендуется просто произвести повторный перенос и подключение БД. В большинстве случаев, после второго перемещения, ошибки пропадают. Если же этого не произошло, необходимо разбирать каждый ошибку по отдельности также можно воспользоваться помощью специалистов, которые не однократно сталкивались с подобными проблемами.Новичкам рекомендуется пошагово выполнять каждый пункт инструкции. Только тогда перенос сайта на drupal будет выполнен быстро и без ошибок. Достаточно несколько раз выполнить перемещение веб-ресурса на хостинг, чтобы в дальнейшем все делать самостоятельно.
onedata.ru