Обновление приложения php с внешнего сервера - PullRequest
3 голосов
/ 02 июня 2011

Я пишу небольшое приложение в рамках KohanaPHP. Предположим, это приложение будет иметь некоторые обновления в будущем. Текущая версия, например, v1.0.

Какой самый лучший и оптимальный способ:

  • проверить, есть ли новая версия
  • и, если да, обновлять файлы на текущем сервере с удаленного сервера

Пока что я использую cURL, чтобы получить файл формы info.txt в своем удаленном файле, а затем сравниваю его с постоянной переменной в движке приложения. Затем я использую модуль https://github.com/kanema/kohana-ftp для подключения к серверу и обновления приложения.

Есть ли лучшее решение, особенно для проверки обновлений (это с version.txt немного раздражает и занимает некоторое время).

Ответы [ 2 ]

2 голосов
/ 02 июня 2011
  1. Используйте некоторую систему управления версиями , такую ​​как Git.
  2. Используйте некоторые сценарии обновления , сценарии, проверяющие, совпадает ли текущая версия (версия в рабочей среде) с удаленным репозиторием (наиболее свежим, обновленным при внесении изменений). ) и - если версии отличаются - обновите производство.
  3. Вызывайте скрипт из пункта 2. на постоянной основе, например, используя cron.

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

В Интернете есть несколько примеров таких инструментов.

Существует также пример простого извлечения последних изменений из репозитория Git с использованием заданий cron здесь: stackoverflow.com / questions / 4414140 / git-auto-pull-using-cronjob

В качестве альтернативы, вы можете использовать так называемые «сервисные хуки» для вызова скриптов обновления, только когда версия в хранилище изменяется кем-то, кто делает push в хранилище (функция доступна, например, в GitHub ).

0 голосов
/ 02 июня 2011

Это зависит от вашей платформы. Я лично использую / поддерживаю Linux и использую пакеты (например, .deb для систем на основе Debian) для объединения, установки и обновления моих приложений / сервисов.

...