Подтвердить что ты не робот

Какая лучшая стратегия развертывания Drupal?

Я работаю над своим первым проектом Drupal на XAMPP в своем MacBook. Это прототип и получает положительные отзывы от моего клиента.

Я собираюсь развернуть проект на Linux VPS две недели спустя. Есть ли лучший способ, чем "переделать все на сервере с нуля?"

  • установить Drupal
  • скачать модули (CCK, Views, Date, Calendar)
  • создать содержимое
  • ...

Спасибо

4b9b3361

Ответ 1

Несколько советов:

  • Используйте источник управления, а не FTP/и т.д., для файлов. Неважно, что вы используете; мы склонны разворачивать учетную запись subversion Unfuddle.com для каждого клиента, чтобы у них было место для регистрации ошибок, но критический первый шаг - получить полное исходное дерево вашего сайта в управление версиями. Когда изменения производятся на сервере тестирования или промежуточном сервере, вы видите, работают ли они, вы фиксируете, а затем обновляетесь на реальном сервере. Откат и развертывание много, проще. Для кластеров нескольких веб-узлов вы можете повторить процесс или rsync с одного "канонического" сервера.

  • Если вы используете SVN, вы также можете использовать CVS-проверки Drupal и других модулей/тем, и метаданные SVN/CVS будут счастливы жить рядом друг с другом.

  • Для громоздких папок, таких как каталог файлов, используйте символическую ссылку в "правильном" местоположении, чтобы указать на серверную директорию за пределами webroot. Это позволяет вашему репозиторию управления версиями включать весь код и символическую ссылку, а не весь код и все файлы, которые пользователи загрузили.

  • Базы данных сложнее; очистка базы данных dev/промежуточной базы данных и ее перенос на живое является самым простым для первоначального развертывания, но при выполнении инкрементных обновлений БД есть несколько морщин, если пользователи на реальном сайте также генерируют контент.

В прошлом году я сделал презентацию лучших практик внедрения Drupal. Не стесняйтесь проверять слайды.

Ответ 2

Features.module - чрезвычайно мощный инструмент для управления изменениями конфигурации Drupal.

Типы контента, параметры CCK, представления, переменные Drupal, контексты, предустановки Imagecache, меню, таксономии и разрешения могут быть включены в функцию, которая может быть проверена в контроле версий. Оттуда, развертывание нового сайта или нажатие изменений на существующий легко управляется с помощью пользовательского интерфейса функций или Drush.

Убедитесь, что вы установили Strongarm.module для экспорта конфигурации drupal, которая хранится в вашей таблице переменных. Вы можете также статический контент/узлы (то есть: о нас, faqs и т.д.) В "Возможности", установив uuid_features.module.

Руки вниз, это лучший способ работать с другими разработчиками на том же сайте и перемещать ваш сайт от разработки до тестирования на стадию и производство.

Ответ 3

Мы провели обширную дискуссию об этом на моем рабочем месте, и то, как мы, наконец, остановились, заключалось в том, что он продвигал обновления кода (включая модули и темы) от разработки до постановки на производство. Мы используем Subversion для этого, и он хорошо работает до сих пор.

Что особенно важно, так это то, что вы автоматизируете процесс отталкивания базы данных от производства, чтобы ваши разработчики могли хранить свои копии базы данных как можно ближе к производству. В критически важной среде вы хотите быть абсолютно уверенным, что обновление модуля не будет вставлять вашу базу данных. Мы используем следующий процесс:

  • Установите модуль на сервере разработки.
  • Обратите внимание на любые изменения и обновления. Если есть какие-либо зацепы, вернитесь и сделайте снова, пока у вас не будет твердого, безошибочного процесса.
  • Проверьте свои изменения! Повторите свой тестовый процесс как обычный, зарегистрированный пользователь и снова как анонимный пользователь.
  • Если процесс обновления включал что-то другое, кроме запуска update.php, напишите script, чтобы сделать это.
  • Скопируйте производственную базу данных на промежуточный сервер и выполните те же действия немедленно. Если это не удается, диагностируйте отказ и вернитесь к шагу 1. В противном случае продолжите.
  • Проверьте свои изменения!
  • ОБРАТИТЕСЬ С ВАШЕЙ БАЗАМИ ПРОИЗВОДСТВА И ПРИНИМАЙТЕ ЗАМЕЧАНИЕ ПО ПЕРЕСМОТРАМ, КОТОРЫЕ ВЫ ПРОВЕРЯЛИСЬ ОТ SVN.
  • Поместите свою продукцию Drupal в режим обслуживания, запустите "svn update" на вашем дереве производства и пройдите через процесс обновления.
  • Извлеките Drupal из режима обслуживания и проверьте все (как администратор, обычный пользователь и анонимный).

И что это. Одна вещь, которую вы никогда не можете ожидать от среды сообщества, такой как Drupal, - это возможность переместить вашу базу данных с тестирования на производство после того, как вы начнете жить. С этого момента все перемещения базы данных происходят от производства до тестирования, что несколько усложняет процесс развертывания. Быть осторожен!:)

Ответ 4

Я удивлен, что никто не упомянул модуль Deployment. Вот выдержка из его страницы проекта:

..., позволяющий пользователям легко создавать контент с одного сайта Drupal на другой. Развертывание автоматически управляет зависимостями между объектами (например, node ссылок). Он разработан, чтобы иметь богатый API, который может быть легко расширен, чтобы использоваться в различных ситуациях размещения контента.

Ответ 5

Мы активно используем модуль Features для захвата функций, а затем легко устанавливаем их на месте производства.

Ответ 6

Я не работаю с Drupal, но я много работаю с Joomla. Я развертываю, архивируя все файлы в корневом каталоге (tar и gzip в моем случае, но вы можете использовать zip), а затем загружать и расширять этот архив на рабочем сервере. Затем я беру SQL-дамп (mysqldump -u user -h host -p databasename > dump.sql), загружаю его и использую обратную команду для вставки данных (mysql -u produser -h prodDBserver -p prodDatabase < dump. SQL). Если у вас нет доступа к оболочке, вы можете загружать файлы по одному и писать PHP script для импорта dump.sql.

Ответ 7

Любая система управления версиями (GIT, SVN) + Features модуль для развертывания кода Drupal + пользовательских настроек (типы контента, пользовательские поля, зависимости модулей, представления и т.д.).

Как Deploy модуль все еще находится в режиме разработки, поэтому вы можете использовать Node export в Drupal 7 для развертывания вашего контента/узлов.

Ответ 8

Если вы новичок в развертывании (и или Drupal), тогда обязательно сделайте все в одном компе. Вы должны быть очень осторожны, когда есть пользователи, которые влияют на контент во время работы над другой копией.

Можно оставить таблицы, которые относятся к фактическому содержанию, таксономии, пользователям и т.д., а не к их структуре. Затем нажмите те, которые связаны с конфигурацией. Однако это добавляет порядок сложности.

Извините, если развертывание для вас - что-то старое, поэтому это смутно оскорбительно.

Ответ 9

Хорошей стратегией, которую я нашел и которой я в настоящее время реализую, является использование комбинации модуля развертывания для переноса моего контента, а затем drush вместе с dbscripts для объединения и обновления ядра и модулей. Он заботится о слиянии с базой данных, даже если у вас есть живое содержимое, безопасность и обновления модулей, и в настоящее время у меня есть моя настройка для работы с svn.