Какие инструменты/языки вы используете для развертывания веб-приложений PHP?
Для моего веб-приложения, запущенного на LAMP, мне нужно иметь возможность развертывать миграции баз данных и изменения кода на нескольких серверах и после этого иметь возможность тестировать развертывание, все это автоматически выполняется скриптами.
В настоящее время я разрывается между использованием непосредственно моего инструмента построения (Phing) с некоторыми специальными задачами развертывания/тестирования или сценариями оболочки, или скриптовый язык, такой как Ruby или Python.
Проблема в том, что я считаю, что инструмент сборки должен использоваться для сборки, а не для развертывания. Я также считаю, что сценарии оболочки трудно поддерживать и не очень читаемы.
Есть ли у вас хороший совет по этому вопросу?
Ответы
Ответ 1
Для проектов PHP Phing - это путь. Развертывание, безусловно, является одним из его предполагаемого использования, учитывая, что в PHP нет никакого "реального" процесса сборки - поскольку скрипты не скомпилированы.
С официального сайта:
Если вы обнаружите, что пишете скрипты для обработки упаковки, развертывания или тестирования ваших приложений, то мы предлагаем посмотреть в инфраструктуре Phing.
Phing может делать все сценарии оболочки /python/ruby, и может быть расширен в PHP, что является его основной привлекательностью для разработчиков PHP. Почему вы хотите использовать ruby /python, если вы являетесь разработчиком PHP?
Ответ 2
Множество людей fooobar.com/questions/tagged/..., похоже, действительно нравится Capistrano.
Ответ 3
Расмус Лердорф (создатель PHP) выпустил инструмент развертывания под названием WePloy.
Ответ 4
Чтобы развернуть веб-приложения, PHP или другие, одним щелчком вы можете использовать fredistrano.
Ответ 5
Что я использовал?
- svn post-commit hook
- оболочка script для rsync
- perl cgi script для переключения svn через системы
Кажется, что ни одно из них не было бы приемлемым для вас, но с учетом вашего заявления "Я также считаю, что сценарии оболочки трудно поддерживать и не очень читаемы".
Ответ 6
Личный script, который использует
Экспорт Svn + rsync