Есть большое желание не мучить боевой друпал, а что-то делать с тестовым, а потом переносить это на боевой сервер.
Даже не смог запрос для поиска внятно сформулировать, все не то находится.
Хочется иметь копию сайта у себя на локальной машине.
Добавлять/настраивать модули, править CSS, даже иногда просто материалы добавлять.
И лишь в определенный момент переносить все это на реальную систему.
Как такое можно сделать?
Сам начал так:
- заархивировал и перенес к себе всю директорию друпала
- через Sypex Dumper 2.0.9 забэкапил и воостановил всю базу
- в hosts себе прописал левое имя сайта и поправил sites.php, сделав их одинаковыми
Что получилось:
- Главная страница открывается корректно
- любая другая (как системная, так и с контентом)выдает 404
Пробовал и RewriteBase убрать - пофиг. Главная страница находится, /update.php отзывается (правильно ругается, что нет прав), а вот /about, к примеру, найти не удается. Ну и в логах, что нет /var/sites/.../about.
Даже не представляю, где еще подебажить...
Основной сайт на шареде, свой - родной, centos 6.2
Т.е. на своем могу что угодно делать, а вот на основном ssh с ограничениями.
В общем-то вопрос не столько в том, как это починить (хотя за идеи буду признателен), сколько в том, как правильно мое желание реализовать.
Кстати, совсем идеально было бы, если бы только изменения на основной заливались, а не все десятки мегабайт целиком.
Что-то есть подобное (хотя бы с частичным подобным функционалом)?
Комментарии
http://drupal.org/project/features
drush core-rsync
drush sql-sync
Спасибо за наводку!
Сразу http://www.drupal.ru/node/71139 нашлось.
Правильно ли я понимаю, что это можно на своей (тестовой) запускать?
Ибо на основной (shared) drush не запускается.
sql-sync в этом отношении волнует, не надо ли основному на шареде разрешений для подключения к базе с внешних адресов.
Есть с чем разбираться
ssh подключение есть?
Да, ssh есть. По sftp файлы гоняю.
Midnight Commander мне по просьбе отдельно разрешили (euhoster/creanova - весьма дружественные товарищи), а drush я в свое время поставил - но что-то не зажил он, в отсутствие каких-то разрешений уперся.
Впрочем, может тогда не очень надо было, поэтому и не стал особо разбираться. А теперь мотивация появилась.
Такое бывает, если не скопировался .htaccess, тот, который в корне.
100% рабочий вариант переноса для "блондинки" - сделать бекап через модуль Backup Migrate, установить чистый боевой друпал, включить там модуль Backup Migrate и через него уже восстановить бд, резерв которой был сделан через Backup Migrate. Это исключает проблемы с нулевым юзером, правда большие БД так не восстановишь
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 (который, естественно, на шареде включен)
там где нужен - там и должен быть))
почему это не светит на шаред?
http://drupalcode.org/project/drush.git/blob/HEAD:/README.txt
sypex нах, должно работать:
mysqldump -u юзерь -p база > дамп.sql
пароль
mysql -u юзерь -p база < дамп.sql
пароль
Ну не понимаю я, что нужно пошаманить, чтобы на шаред его засунуть.
Ну, #!/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 забирал, распаковывал, подкачивал.
И в обратную сторону.
на
лентяйшоман,и не игнорь боле офдоки с орга))))
p.s.
когда проинсталишься - drush без ключей ввод,
чтоб отпали вопросы чего с ним делать)
Да я ж писал на live:
./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 не запустить было бы
Впрочем, держать кучу мелких проектов за $3/мес быстро и практически безотказно - я их понимаю.
Просто быстрее придется переезжать на побольше.
А пока действительно базы нормально переносятся через backup_migrate. А файлы я, в основном, на внешних ресурсах храню.
Какое-то время так еще поживу.