Как править тестовый сайт, а потом деплоить его на продакшн?

Главные вкладки

Аватар пользователя treusp treusp 1 июля 2012 в 23:10

Есть большое желание не мучить боевой друпал, а что-то делать с тестовым, а потом переносить это на боевой сервер.
Даже не смог запрос для поиска внятно сформулировать, все не то находится.

Хочется иметь копию сайта у себя на локальной машине.
Добавлять/настраивать модули, править CSS, даже иногда просто материалы добавлять.
И лишь в определенный момент переносить все это на реальную систему.

Как такое можно сделать?

Сам начал так:

  • заархивировал и перенес к себе всю директорию друпала
  • через Sypex Dumper 2.0.9 забэкапил и воостановил всю базу
  • в hosts себе прописал левое имя сайта и поправил sites.php, сделав их одинаковыми

Что получилось:

  • Главная страница открывается корректно
  • любая другая (как системная, так и с контентом)выдает 404

Пробовал и RewriteBase убрать - пофиг. Главная страница находится, /update.php отзывается (правильно ругается, что нет прав), а вот /about, к примеру, найти не удается. Ну и в логах, что нет /var/sites/.../about.
Даже не представляю, где еще подебажить...

Основной сайт на шареде, свой - родной, centos 6.2
Т.е. на своем могу что угодно делать, а вот на основном ssh с ограничениями.

В общем-то вопрос не столько в том, как это починить (хотя за идеи буду признателен), сколько в том, как правильно мое желание реализовать.

Кстати, совсем идеально было бы, если бы только изменения на основной заливались, а не все десятки мегабайт целиком.

Что-то есть подобное (хотя бы с частичным подобным функционалом)?

Комментарии

Аватар пользователя treusp treusp 1 июля 2012 в 23:51

drupby wrote:
http://drupal.org/project/features[/quote]

Ммм.. Я, видимо, настолько просто юзер друпала, ни разу не адвансед, что не врубился, чем мне features помочь может.
Или к нему есть какие-то доп модули, которые мою задачу решат?
Сам я точно написать что-то не в силах.

Аватар пользователя treusp treusp 1 июля 2012 в 23:49

xxandeadxx wrote:
drush core-rsync
drush sql-sync

Спасибо за наводку!
Сразу http://www.drupal.ru/node/71139 нашлось.

Правильно ли я понимаю, что это можно на своей (тестовой) запускать?
Ибо на основной (shared) drush не запускается.
sql-sync в этом отношении волнует, не надо ли основному на шареде разрешений для подключения к базе с внешних адресов.

Есть с чем разбираться Smile

Аватар пользователя treusp treusp 2 июля 2012 в 10:22

drupby wrote:
"treusp" wrote:
Ибо на основной (shared) drush не запускается.

ssh подключение есть?

Да, ssh есть. По sftp файлы гоняю.
Midnight Commander мне по просьбе отдельно разрешили (euhoster/creanova - весьма дружественные товарищи), а drush я в свое время поставил - но что-то не зажил он, в отсутствие каких-то разрешений уперся.
Впрочем, может тогда не очень надо было, поэтому и не стал особо разбираться. А теперь мотивация появилась.

Аватар пользователя volocuga@drupal.org volocuga@drupal.org 2 июля 2012 в 10:43

"treusp" wrote:
любая другая (как системная, так и с контентом)выдает 404

Такое бывает, если не скопировался .htaccess, тот, который в корне.

100% рабочий вариант переноса для "блондинки" - сделать бекап через модуль Backup Migrate, установить чистый боевой друпал, включить там модуль Backup Migrate и через него уже восстановить бд, резерв которой был сделан через Backup Migrate. Это исключает проблемы с нулевым юзером, правда большие БД так не восстановишь

Аватар пользователя treusp treusp 7 июля 2012 в 23:19

1. Разобрался, почему не работали ссылки.
Не хватало AllowOverride All

2. Drush на тестовую машину поставил.
Но все время что-то требуется от удаленного хостинга
./drush @live status
bash: drush: command not found

drush rsync --progress @live @Dev
sh: rsync: command not found

Т.е., насколько понимаю, drush должен быть на обеих сторонах, т.е. с шаредом мне не светит.

3. Через backup_migrate - да, все норм.
Только вот хотел не таскать файлы вручную, а на что-то внешнее кидать.
Увы, Amazon S3 не прокатил, curlopt_followlocation конфликтует с open_basedir (который, естественно, на шареде включен)

Аватар пользователя multpix multpix 7 июля 2012 в 23:42

"treusp" wrote:
Т.е., насколько понимаю, drush должен быть на обеих сторонах, т.е. с шаредом мне не светит.

там где нужен - там и должен быть))

почему это не светит на шаред?
http://drupalcode.org/project/drush.git/blob/HEAD:/README.txt

sypex нах, должно работать:
mysqldump -u юзерь -p база > дамп.sql
пароль

mysql -u юзерь -p база < дамп.sql
пароль

Аватар пользователя treusp treusp 8 июля 2012 в 0:32

Ну не понимаю я, что нужно пошаманить, чтобы на шаред его засунуть.

Ну, #!/usr/bin/env sh я на просто #!/bin/sh заменить в состоянии.
Но все равно:

$ ./drush
./drush: line 10: dirname: command not found
./drush: line 10: cd: : No such file or directory
./drush: line 25: dirname: command not found
./drush: line 26: uname: command not found
./drush: line 37: which: command not found
./drush: line 50: which: command not found
./drush: line 73: dirname: command not found
./drush: line 87: exec: : not found

Мало команд разрешено...

Собственно:
/bin
bash clear cp find ls mkdir mv rm rmdir sh su tar

/usr/bin
clear du groups id mcedit mysqldump rsync ssh
dircolors find gzip mc mysql nc scp wget

Я даже drush.php не могу запустить из командной строки, php нет.
Apache его сам обрабатывает, а вот выполнить не могу.

Мммм... А может тогда можно извратиться как-то?
Не на dev запускать (поскольку на live не запускается), а наоборот?
Сделать какую-то страничку на php, дергающую drush с параметрами...

Ворпос: open_basedir=/home/user/:/usr/home/home/user/:/tmp/
Вряд ли даст нормально таким образов выполняться. Или не страшно?

Впрочем, все равно какое-то извращение.

Наверное придется просто скриптик писать, чтобы архивировал все, что надо (директории, модули, базу) и куда-то клал.
Ну а на dev забирал, распаковывал, подкачивал.
И в обратную сторону.

Аватар пользователя multpix multpix 8 июля 2012 в 1:15

"treusp" wrote:
Ну не понимаю я, что нужно пошаманить, чтобы на шаред его засунуть

на лентяй шоман,
и не игнорь боле офдоки с орга))))

p.s.
когда проинсталишься - drush без ключей ввод,
чтоб отпали вопросы чего с ним делать)

Аватар пользователя treusp treusp 8 июля 2012 в 21:31

multpix wrote:

когда проинсталишься - drush без ключей ввод,
чтоб отпали вопросы чего с ним делать)

Да я ж писал на live:

$ ./drush
./drush: line 10: dirname: command not found
./drush: line 10: cd: : No such file or directory
./drush: line 25: dirname: command not found
./drush: line 26: uname: command not found
./drush: line 37: which: command not found
./drush: line 50: which: command not found
./drush: line 73: dirname: command not found
./drush: line 87: exec: : not found

Хостеру, кстати написал.
Ответили, что действительно есть ограничения на запуск программ из консоли. Если не хватает - вперед на VDS. Счастье еще, что mc в свое время подключили, а то бы и find/chmod не запустить было бы Smile
Впрочем, держать кучу мелких проектов за $3/мес быстро и практически безотказно - я их понимаю.
Просто быстрее придется переезжать на побольше.

А пока действительно базы нормально переносятся через backup_migrate. А файлы я, в основном, на внешних ресурсах храню.
Какое-то время так еще поживу.