У меня много сайтов 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? Может быть, код развертывания?
Для синхронизации кода я рекомендую:
Common_Code_Folder
в репозиторий GIT.git pull
)Если ваш код имеет доступ к базе данных, сценарий (например, скрипт PHP) также должен
Затем процесс автоматического развертывания выполняется безопасно, даже если база данных изменяется.
Поскольку этот общий код является своего рода библиотекой вашего пользовательского кода PHP, вы также можете обновить его через композитор. Затем ваш общий код устанавливается в vendor
каталога. Это обычная практика, например, в Yii2.
git
или любой другой системы управления версиями. Вы просто извлекаете данные из хранилища, что может быть сделано автоматически, возможно, на основеcron
, или с помощью какого-либо административного вызова.