Как сделать развертывание для приложения php

В настоящее время я разрабатываю php-приложение для благотворительной организации, и сейчас я нахожусь в стадии определения методов развертывания.

Наше приложение использует Zend Framework и Doctrine. Приложение будет развернуто на разных серверах, каждый из которых имеет свой файл конфигурации. Машины являются как Windows, так и Linux (но все с Apache и php 5.2+).

Исходный код доступен в хранилище Subversion, и мы хотим собирать и хранить наши пакеты на сервере Linux.

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

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

Я немного читал о фарS, груша, Phing, но я понятия не имею, что лучший способ сделать это. Сервер непрерывной интеграции на самом деле не нужен, но я думаю об автоматическом развертывании тестовых сред после создания версии.

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