Подтвердить что ты не робот

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

Я не могу найти решение для развертывания Php на удаленный сервер, используя FTP из SVN после каждой фиксации. Как загрузить на сервер по FTP только добавленные или отредактированные файлы и удалить удаленные файлы из SVN Я думаю о написании post-commit script...

4b9b3361

Ответ 1

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

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

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

Взгляните на phing, для него есть несколько расширений FTP (так называемые "задачи" ). У меня нет реального опыта в мире с ними.

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

Ответ 2

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

Ответ 3

Я использую http://svn2ftp.com, который является хостом SVN, который позволяет удаленное развертывание на S/FTP при каждой фиксации!

Ответ 4

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

Ответ 5

Для нашего проекта php мы используем Jenkins инструмент непрерывной интеграции. Наш сервер репозитория - это подрывная деятельность. Всякий раз, когда мы делаем изменения кода, мы используем задания jenkins для слияния с промежуточной и живой средой Beta, а затем развертываем приложение.

Вы можете найти дополнительную информацию о развертывании PHP-приложений с помощью Jenkins на http://www.michaelpeacock.co.uk/blog/entry/jenkins-ci-an-introduction-for-php-developers

Ответ 6

mybe cron + bash script, который будет svn up?

Ответ 7

Вы просмотрели Beanstalk? Он позволяет развернуть проекты Subversion и Git на ваш FTP-сервер одним щелчком мыши. Это не бесплатно. Другой бесплатной альтернативой будет установка сервера непрерывной интеграции, который будет запускать rake script для развертывания.

Ответ 8

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

Ответ 9

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

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

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

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

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