2010-05-26 4 views
5

Я много читал о развертывании приложений здесь, но пока не нашел подходящего ответа на наши запросы.Лучший способ развертывания веб-приложения Zend

У нас есть большое веб-приложение, построенное с помощью рамки zend, которую мы хотим развернуть на удаленном сервере. Мы хотим иметь возможность легко и безопасно развертывать новую версию нашего приложения на нашем производственном сервере.

Что должно быть сделано следующее:

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

Мы используем SVN в качестве средства управления версиями кода, и мы запускаем CentOS в качестве нашей серверной ОС на производстве.

Я прочитал о:

  • Rsync
  • fredistrano/Капистрано
  • Phing
  • пользовательских сценариев оболочки

Каковы ваши советы для легкого развертывания один-клик?

+0

Похожими: http://stackoverflow.com/questions/1143154/how-to-deploy -your-php-applications-правильно – Sampson

+0

Другое похоже: http://stackoverflow.com/questions/2006461/how-to-do-deployment-for-php-application –

ответ

3

экспортировать (или выписку) копию сайта под другим именем (как правило, пересмотр диверсии номер & даты) и симлинка корень документа на место

1000.20100515/ 
    application/ 
    public/ 
    library/ 
1020.20100621/ 
current (symlink to 1000.20100515/) 
dev (symlink to 1020.20100621/) 

# copy whatever 'dev' points to as the new 'current' symlink. 
rm current && cp -d dev current 

Корневым документа устанавливается в апаче для ../current/public

С этим я могу проверить новую версию сайта на досуге и добавить новую версию live en-mass за долю секунды. Возврат к предыдущей версии сайта так же просто, как изменение символической ссылки - если возникнет серьезная проблема.

Добавлено рубинового инструмент «Capistrano» может быть отличным способом, чтобы полностью автоматизировать этот процесс по целому ряду машин (будь то один, или десяток), да и теперь это мой предпочтительный метод развертывания. Capifony - это плагин для Capistrano, который также поддерживает проекты на основе Composer.

+3

И как вы обрабатываете изменения схемы БД? Вот где начинается забава: p. – wimvds

+0

yup, хотелось бы это услышать. Dbdeploy? – Jorre

+0

.... бережно. –

0

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

Он работает с git или svn и создает версии на целевом сервере. Вы можете откатить и развернуть свою новую версию с одной строкой CMD.

Я нашел этот учебник: http://tfountain.co.uk/blog/2009/5/11/zend-framework-capistrano-deployment

Вы имеете модифицированную версию Capistrano с другим учебником здесь: http://www.codewithstyle.eu/2011/05/03/deploying-zend-framework-applications-using-capistrano/