Развертывание с Capistrano - PullRequest
       26

Развертывание с Capistrano

0 голосов
/ 20 сентября 2009

Я пытаюсь войти в развертывание PHP-приложения с Capistrano. У меня есть два файла конфигурации, которые мне нужно «отредактировать» в зависимости от того, где я его развернул. Это базовые вещи, такие как имя базы данных и корневой URL (Codeigniter). Можно ли сделать так, чтобы Capistrano редактировался автоматически? Допустим, я хочу отредактировать следующее в файле /system/config/edit.php:

$test = '';
// edit to
$test = 'Hello World';

Спасибо, Max

Ответы [ 2 ]

5 голосов
/ 20 сентября 2009

Что я обычно делаю в такой ситуации (даже если я не использую Capistrano) - это несколько файлов конфигурации, переданных в систему контроля версий.

Например:

  • config.php для проявочных машин
    • этот файл всегда используется приложением
  • config.testing.php
  • config.staging.php
  • config.production.php

А при развертывании приложения на сервере мне просто нужно скопировать файл, соответствующий текущей среде, в "config.php" - поскольку этот файл всегда используется приложением.

Это означает, что я должен сделать копию файла во время процесса сборки, да, но:

  • это означает, что нет необходимости искать и заменять, что может сломать
  • это также означает, что все конфигурационные файлы передаются в SVN (или любое используемое вами программное обеспечение для управления исходным кодом)


Если ваши файлы конфигурации становятся слишком сложными и дублируют множество вещей, вы можете подумать о наличии одного файла конфигурации «по умолчанию», который всегда включен, и файлов субконфигурации, которые определяют только то, что зависит от среды.

Что то, что я говорил раньше, остается в силе: просто включите файл «по умолчанию» в начале друг друга.

0 голосов
/ 20 сентября 2009

Мой Unix - это знание, которое не совсем в порядке, поэтому я не могу получить идеальный синтаксис для того, что вы хотите. Однако Capistrano позволяет вам напрямую использовать командную строку Unix, вызывая : run_method в ваших конфигах.

Код Capistrano может выглядеть примерно так:

run "grep -R --files-with-matches '$test = "";' /system/config/ | xargs perl -pi~ -e 's/\$test = "";/$test = "Hello World";/'"

Я бы проверил эту функцию поиска и замены, работающую, как ожидалось, до ее реализации.

Если вам нужна дополнительная помощь, я бы порекомендовал ознакомиться с Справочником Capistrano , он должен ответить на большинство ваших вопросов.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...