Что такое лучшая стратегия развертывания Drupal? [закрытый]

Ответьте на этот вопрос, если кто-то еще посчитает это полезным. Кажется, проблема в том, что кнопка «Тест» в драйвере ODBC не учитывает параметры, заданные в параметрах libpq, а просто использует настройки по умолчанию. Когда я сохранил ODBC-соединение, закрыл окно ODBC Data Source Administrator и использовал соединение из другой программы, он смог успешно установить соединение.

53
задан ohho 8 April 2009 в 02:56
поделиться

7 ответов

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

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

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

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

  • Базы данных хитрее; Очистка базы данных dev / staging и запуск ее в жизнь является самым простым для начального развертывания, но при выполнении инкрементных обновлений базы данных есть несколько складок, если пользователи на живом сайте также генерируют контент. ] Лучшие практики развертывания Drupal в прошлом году. Не стесняйтесь проверить слайды.

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

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

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

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

  • Базы данных хитрее; Очистка базы данных dev / staging и запуск ее в жизнь является самым простым для начального развертывания, но при выполнении инкрементных обновлений базы данных есть несколько складок, если пользователи на живом сайте также генерируют контент. ] Лучшие практики развертывания Drupal в прошлом году. Не стесняйтесь проверить слайды.

  • 53
    ответ дан Eaton 7 November 2019 в 08:37
    поделиться

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

    2
    ответ дан 7 November 2019 в 08:37
    поделиться

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

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

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

    0
    ответ дан 7 November 2019 в 08:37
    поделиться

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

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

    1. Установите модуль на сервер разработки.
    2. Обратите внимание на все необходимые изменения и обновления. Если есть какие-то заминки, вернитесь и повторите, пока не получите надежный, безошибочный процесс.
    3. Проверьте свои изменения! Повторите процесс тестирования как обычный зарегистрированный пользователь и снова как анонимный пользователь.
    4. Если процесс обновления включал что-либо иное, кроме запуска update.php, напишите сценарий для этого.
    5. Скопируйте производственную версию базу данных на промежуточный сервер и немедленно выполните те же действия. В случае неудачи диагностируйте неисправность и вернитесь к шагу 1. В противном случае продолжите.
    6. Проверьте свои изменения!
    7. СОЗДАЙТЕ РЕЗЕРВНОЕ КОПИРОВАНИЕ БАЗЫ ПРОИЗВОДСТВЕННЫХ ДАННЫХ и ПРИНИМАЙТЕ ПРОВЕРКУ, КОТОРАЯ ВЫ ПРОВЕРИЛИ В SVN.
    8. производственный Drupal в режиме обслуживания, запустите «svn update» в производственном дереве и выполните процесс обновления.
    9. Выведите Drupal из режима обслуживания и протестируйте все (как администратор, обычный пользователь и аноним)

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

    16
    ответ дан 7 November 2019 в 08:37
    поделиться

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

    5
    ответ дан 7 November 2019 в 08:37
    поделиться

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

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

    5
    ответ дан 7 November 2019 в 08:37
    поделиться

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

    0
    ответ дан 7 November 2019 в 08:37
    поделиться
    Другие вопросы по тегам:

    Похожие вопросы: