Как поделиться кодом PHP на нескольких сайтах / серверах?

1

У меня много сайтов PHP, которые находятся на разных серверах (LAMP-серверы в облаке). Это разные сайты от разных клиентов, но я использую какой-то общий код во всех них. Весь этот общий код я вставляю в Common_Code_Folder, который я использую в качестве библиотеки с классами, контроллерами, функциями и т.д.

Структура выглядит так:

Server 1
> Common_Code_Folder
> Root_Folder
    > Code Website 1

Server 2
> Common_Code_Folder
> Root_Folder
    > Code Website 2

Server 3
> Common_Code_Folder
> Root_Folder
    > Code Website 3

И т.д...

Я ищу более разумное решение для развертывания, когда я что-то меняю в папке Common_Code.

То, что я делаю прямо сейчас:

Когда я меняю какой-либо файл внутри папки Common_Code, мне нужно подключиться к FTP для всех веб-сайтов и загружать папку common_code для всех из них. Если у меня 15 веб-сайтов, мне нужно сделать это 15 раз!

Есть ли способ автоматизировать это? Может быть, GIT? Может быть, код развертывания?

  • 1
    Конечно, типичный сценарий использования git или любой другой системы управления версиями. Вы просто извлекаете данные из хранилища, что может быть сделано автоматически, возможно, на основе cron , или с помощью какого-либо административного вызова.
  • 0
    @arkascha на правильном пути. Используйте подмодули git: lornajane.net/posts/2014/…
Теги:
web-deployment

1 ответ

1
Лучший ответ

Для синхронизации кода я рекомендую:

  • поместите свой код в Common_Code_Folder в репозиторий GIT.
  • использовать сценарий для развертывания новых версий, вытащить новый код (git pull)
  • этот скрипт может выполняться вручную по требованию или cron

Если ваш код имеет доступ к базе данных, сценарий (например, скрипт PHP) также должен

  • проверить изменения базы данных
  • применять миграцию базы данных

Затем процесс автоматического развертывания выполняется безопасно, даже если база данных изменяется.

Поскольку этот общий код является своего рода библиотекой вашего пользовательского кода PHP, вы также можете обновить его через композитор. Затем ваш общий код устанавливается в vendor каталога. Это обычная практика, например, в Yii2.

  • 0
    Благодарю. Я использую GIT, и он работает. Мне просто нужно зафиксировать и отправить изменения, и мои серверы (Jelastic) извлекают все обновления.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню