Версия и развертывание cakephp на виртуальном хостинге
Я разместил свой проект CakePHP на общем хостинге, но он не версионный. Я хотел бы установить его версию, используя git или mercurial, и легко вносить изменения. Какие шаги я должен предпринять? Должен ли я сначала установить git на свой хостинг и сделать клон в локальной среде? Должен ли я иметь отдельную папку с репозиториями на общем хостинге, а затем развертывать изменения с помощью какой-либо утилиты?
Спасибо
3 ответа
Сервер Subversion должен отличаться от производственного сервера. Вы можете создать аккаунт на github и разместить его там как частный проект.
На рабочем сервере вы просто извлекаете последние изменения, когда хотите сделать обновление (или используете сервер непрерывной интеграции - jenkins, teamcity, bamboo и т. Д.)
На вашем локальном компьютере вы будете отправлять / извлекать изменения на тот же сервер Subversion.
Многие сайты общего хостинга не позволяют вам иметь доступ к оболочке на своих серверах, а некоторые не имеют установленного git. Если вы зависите от внесения изменений непосредственно на рабочий сервер, то когда вас попросят установить на сервер, который не поддерживает shell / git, вы должны сделать что-то другое... что больно.
Вот решение, которое работает для меня:
- Читайте о git-flow
- Имейте папку проекта, которая непосредственно отражает ваши файлы разработки. Это в развивающейся ветке.
- Имейте папку проекта, которая непосредственно отражает ваши производственные файлы. Это мастер ветка.
Когда вы довольны своим сайтом разработки, внесите изменения и внесите изменения. Затем измените ваш проект (в вашей IDE) на рабочую версию. Потяните и объедините ваши изменения (но пока не фиксируйте). Моя IDE позволяет мне загружать только измененные файлы, которые я затем фиксирую.
Я понимаю, что это не решение, которое принимают многие люди, и, как сказал Корнелб, сервер непрерывной интеграции, вероятно, немного упростит этот процесс. Но это работает очень хорошо для меня, и требует только FTP-доступа к общему серверу, на котором вы развертываете свой код.
Вы можете установить Git на свой хостинг? В большинстве случаев они этого не допустят.
Если да, вы можете использовать post-receive
зацепите файлы в каталоге вашего проекта:
GIT_WORK_TREE=/var/www/example.org git checkout -f
Или вы можете использовать один из этих инструментов, который выполняет развертывание через FTP из вашего локального репозитория git.