В настоящее время я разрабатываю php-приложение для благотворительной организации, и сейчас я нахожусь в стадии определения методов развертывания.
Наше приложение использует Zend Framework и Doctrine. Приложение будет развернуто на разных серверах, каждый из которых имеет свой файл конфигурации. Машины являются как Windows, так и Linux (но все с Apache и php 5.2 +).
Источник доступен в хранилище subversion, и мы хотим собрать и сохранить наши пакеты на сервере Linux.
Желательно, чтобы процесс обновления был таким же простым, как и выполнение команды обновления в каталоге приложения, где команда обновления также обновляет базу данных (с помощью сценариев доктрины) и обеспечивает зависимости сред. Эта команда обновления должна быть командой на компьютере (мы не можем подключиться к ним по ssh). Предпочтительно у нас есть возможность загрузить новую версию или предоставить уже загруженный архив с новой версией. (но только загрузка или только тарбол тоже в порядке)
Пакеты с установками и обновлениями (новые версии) также предпочтительно собирать одной командой.
Я немного читал о phar's, pear, phing, но понятия не имею, какой лучший способ сделать это. Сервер непрерывной интеграции на самом деле не нужен, но я думаю об автоматическом развертывании тестовых сред после создания версии.
Первоначально только обновление php-приложения должно быть очень простым, изначально заполнение файла конфигурации при установке может быть выполнено вручную.