Развертывание Php на удаленном сервере с помощью FTP от SVN после каждой фиксации

Я coudn't нахожу решение для развертывания Php на удаленном сервере с помощью FTP от SVN после каждой фиксации. Как я могу загрузить на сервер FTP единственные добавленные или отредактированные файлы и удалить удаленные файлы из SVN, я думаю о сценарии постфиксации записи...

17
задан user312729 9 April 2010 в 11:46
поделиться

3 ответа

Вы можете использовать svn2web для загрузки каждого зафиксированного файла на сервер через FTP. Svn2web - это набор php-скриптов, которые вы можете использовать в качестве ловушек svn. Вы можете установить адрес, имя пользователя и пароль ftp-сервера как свойство svn в каталоге. Работает отлично!

6
ответ дан 30 November 2019 в 12:35
поделиться

Хороший вопрос!

Я не уверен, что существует подход к синхронизации файлов, основанный только на PHP.

Я обычно использую сторонние инструменты синхронизации FTP, такие как rsync или ScriptFTP (коммерческий), чтобы выполнить синхронизирующую часть.

Загляните в phing , там есть несколько расширений FTP (называемых «задачами»). Однако у меня нет реального опыта общения с ними.

В этом сообщении в блоге предлагается ряд идей и подходов: Использование phing для синхронизации файлов с общим хостингом

13
ответ дан 30 November 2019 в 12:35
поделиться

Лучший способ (если ваш сервер основан на Linux) сделать экспорт SVN в новый каталог, а затем переместить новый каталог, чтобы заменить старый (лучший способ сделать это - использовать символические ссылки на разные версии сайта). Таким образом, сайт будет недоступен на секунду или две, в то время как, если вы используете rsync и у вас большой сайт, если вы резко измените один файл, сайт будет сломан до тех пор, пока все файлы не синхронизируются.

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

В настоящее время мы внедряем подход, описанный выше, в производственную среду и настройка выглядит следующим образом:

  • Фиксация выполняется в стволе
    • Перед ее фактической фиксацией в коде выполняются тесты, чтобы убедиться, что все работает
  • После нескольких совершает развертывание (обычно под контролем разработчика)
    • Тесты запускаются снова
    • Если они успешны - все в порядке
    • Если они терпят неудачу, возвращается старый экспорт и сайт снова полностью готов к работе

Все это написано на PHP с использованием стандартных консольных команд.

0
ответ дан 30 November 2019 в 12:35
поделиться
Другие вопросы по тегам:

Похожие вопросы: