Какова лучшая стратегия развертывания Drupal? [закрытый]
Я работаю над своим первым проектом Drupal на XAMPP в моем MacBook. Это прототип и получает положительные отзывы от моего клиента.
Я собираюсь развернуть проект на Linux VPS через две недели. Есть ли лучший способ, чем "переделать" все на сервере с нуля?
- установить Drupal
- загрузить модули (CCK, просмотры, дата, календарь)
- создать Содержание
- ...
спасибо
9 ответов:
несколько советов:
используйте систему управления версиями, а не FTP / etc. для файлов. Это не имеет значения, что вы используете; мы склонны раскручивать Unfuddle.com учетная запись subversion для каждого клиента, поэтому у них есть место для регистрации ошибок, но критическим первым шагом является получение полного исходного дерева вашего сайта в систему управления версиями. Когда изменения вносятся на тестовом сервере или промежуточном сервере, вы видите, работают ли они, вы фиксируете, а затем обновляете на реальном сервере. Откаты и развертывание становится намного проще. Для кластеров из нескольких webheads вы можете повторить процесс или rsync с одного "канонического" сервера.
однако, если вы используете SVN, вы также можете использовать CVS-проверки Drupal и других модулей/тем, а метаданные SVN/CVS смогут жить рядом друг с другом счастливо.
для громоздких папок, таких как каталог файлов, используйте символическую ссылку в "правильном" месте, чтобы указать на серверный каталог за пределами антивирус Webroot. Это позволяет вашему репозиторию управления версиями включать весь код и символическую ссылку, а не весь код и все файлы, загруженные пользователями.
базы данных сложнее; очистка dev / staging DB и нажатие на нее для жизни проще всего для первоначального развертывания, но есть несколько морщин при выполнении инкрементных обновлений БД, если пользователи на живом сайте также генерируют контент.
Я сделал презентацию о развертывание Drupal лучшие практики в прошлом году. Не стесняйтесь проверить слайды.
особенности.модуль является чрезвычайно мощным инструментом для управления изменениями конфигурации Друпал.
типы контента, настройки CCK, представления, переменные Drupal, контексты, пресеты Imagecache, меню, таксономии и разрешения могут быть свернуты в функцию, которую можно проверить в системе управления версиями. Оттуда развертывание нового сайта или внесение изменений в существующий легко управляется с помощью пользовательского интерфейса функций или Drush.
убедитесь, что вы установите Strongarm.модуль для экспорта конфигурации drupal, которая хранится в таблице переменных. Вы также можете статический контент / узлы (т. е.: о нас, часто задаваемые вопросы и т. д.) В функции, установив uuid_features.модуль.
руки вниз, это лучший способ работать с другими разработчиками на том же сайте, а также для перемещения вашего сайта от разработки к тестированию до постановки и производства.
У нас было обширное обсуждение этого на моем рабочем месте, и то, как мы, наконец, остановились на том, чтобы продвигать обновления кода (включая модули и темы) от разработки до постановки на производство. Мы используем Subversion для этого, и пока все работает хорошо.
что особенно важно, что вы автоматизируете процесс для нажатия базы данных назад от производства, чтобы ваши разработчики могли хранить свои копии базы данных как можно ближе к производству вероятный. В критически важной среде вы хотите быть абсолютно уверены, что обновление модуля не будет шлангом вашей базы данных. Мы используем следующий процесс:
- установить модуль на сервере разработки.
- обратите внимание на любые изменения и обновления были необходимы. Если есть какие-либо заминки, вернуться и сделать снова, пока у вас есть твердый, безошибочный процесс.
- Проверьте свои изменения! Повторите процесс тестирования как обычный пользователь, вошедший в систему, и опять же, как анонимный пользователь.
- если процесс обновления включал что-либо, кроме запуска обновления.php, а затем написать скрипт, чтобы сделать это.
- скопируйте производственную базу данных на промежуточный сервер и немедленно выполните те же действия. Если это не удается, диагностируйте сбой и вернитесь к шагу 1. В противном случае продолжайте.
- Проверьте свои изменения!
- создайте резервную копию своей производственной базы данных и обратите внимание на ревизию, которую вы проверили из SVN.
- поставить ваш производственный Drupal в режиме обслуживания, запустите "svn update" на вашем производственном дереве и пройдите процесс обновления.
- вывести Drupal из режима обслуживания и проверить все (как администратор, обычный пользователь и анонимный)
и это все. Одна вещь, которую вы никогда не можете ожидать от платформы сообщества, такой как Drupal, - это возможность переместить вашу базу данных из тестирования в производство после того, как вы перейдете в прямой эфир. С этого момента все перемещения базы данных выполняются от производства до тестирование, что несколько усложняет процесс развертывания. Будьте осторожны! :)
мы широко используем модуль функций для захвата функций, а затем легко устанавливаем их на производственной площадке.
Я удивлен, что никто не упомянул развертывание модуль. Вот выдержка из его страницы проекта:
... разработанный, чтобы позволить пользователям легко размещать контент с одного сайта Drupal на другой. Развертывание автоматически управляет зависимостями между сущностями (например, ссылками на узлы). Он разработан, чтобы иметь богатый API, который может быть легко расширен для использования в различных ситуациях размещения контента.
Я не работаю с Drupal, но я много работаю с Joomla. Я развертываю, архивируя все файлы в веб-корне (tar и gzip в моем случае, но вы можете использовать zip), а затем загружаю и расширяю этот архив на рабочем сервере. Затем я беру дамп SQL (mysqldump-u user-h host-p databasename > дамп.sql), загрузите это и используйте обратную команду для вставки данных (mysql-u produser-h prodDBserver-p prodDatabase
любая система контроля версий (GIT, SVN)+особенности модуль для развертывания кода Drupal + пользовательские настройки (типы контента, пользовательские поля, зависимости модулей, представления и т. д.).
Как развернуть модуль все еще находится в режиме разработки, так что вы можете использовать экспорт узле модуль в Drupal 7 для развертывания вашего контента / узлов.
Если вы новичок в развертывании (и или Drupal), то не забудьте сделать все в одном куске. Вы должны быть очень осторожны, когда есть пользователи, влияющие на контент во время работы над другой копией.
можно оставить таблицы, которые относятся к фактическому содержанию, таксономии, пользователям и т. д. а не их структура. Затем нажмите те, которые относятся к конфигурации. Однако это добавляет порядка величины сложности.
извинения, если развертывание-это что-то старое шляпа для вас, таким образом, это немного оскорбительным.
хорошая стратегия, которую я нашел и в настоящее время реализую, заключается в использовании комбинации модуля развертывания для миграции моего контента, а затем drush вместе с dbscripts для слияния и обновления ядра и модулей. Он заботится о слиянии баз данных, даже если у вас есть живые обновления контента, безопасности и модулей, и в настоящее время у меня есть настроенный для работы с svn.