У меня есть веб-сайт, который находится под контролем версий. Чтобы упростить развертывание на сервере, я думаю о клонировании репо на сервере, и всякий раз, когда я хочу обновлять страницы, просто удаляйте изменения с сервера. С точки зрения безопасности это плохая идея оставить папку .git, лежащую на веб-сервере?Развертывание сайтов с защитой git
ответ
Вы можете разместить произвольные файлы в .git
, например файл .htaccess
, который предотвратит любой доступ через веб-сервер.
Если вы хотите дополнительный уровень безопасности (в случае, если вы забыли поставить .htaccess
там в то время как клонировании хранилища, например), вы можете иметь свой веб-сервер, отказываетесь обслуживать любой URL с .git/
в нем с помощью mod_rewrite
(обеспечивает используйте Apache, другие веб-серверы будут использовать другие механизмы).
Используйте что-то вроде git --git-dir=... checkout .
Это позволяет вам иметь каталог .git
вне дерева html. Вы даже можете использовать голый репозиторий, добавив --work-tree
:
git --git-dir=... --work-tree=... checkout
Использование голого репо позволяет избежать избыточную копии дерева, а лучше для толкания в.
То же самое можно указать и с помощью переменных среды. На странице пользователя git
есть подробная информация.
Вы, конечно, должны запустить эту команду. Задача cron - один очевидный путь; возможно, это можно сделать с помощью фиксации после фиксации, но я не проверял это. Если вы переходите на серверное репо, как вы предполагали, вместо того, чтобы нажимать, команда может, конечно, запускаться вручную или вы можете установить переменную core.worktree, чтобы всегда ставить дерево где-то в другом месте. –
Как я нашел в одном из многих похожих вопросов о SO, есть более полное описание [здесь] (http://toroid.org/ams/git-website-howto) –
- 1. Развертывание сайтов с помощью git (или вообще: рабочий процесс развертывания)
- 2. Смешанное развертывание веб-сайтов Azure с использованием FTP и git
- 3. Развертывание веб-сайтов Topshelf
- 4. Развертывание веб-сайтов онлайн
- 5. Подтвердить разметку сайтов с защитой паролем с помощью W3C
- 6. Автоматическое развертывание с Git
- 7. Развертывание Laravel с Git
- 8. Развертывание с Git/Github
- 9. Развертывание Grunt с Git
- 10. Правильное развертывание нескольких сайтов с использованием Nginx
- 11. Развертывание изменений базы данных в среде с защитой от брандмауэра
- 12. Развертывание с несколькими git repos
- 13. Многостраничное развертывание с использованием git и CI
- 14. Git - развертывание без клона
- 15. Развертывание сайтов Azure/веб-сайтов с использованием сертификатов в командной строке
- 16. Развертывание сайтов в виртуальной машине django
- 17. Развертывание сайтов Azure не удается (неверная структура?)
- 18. Развертывание решения asp.net для нескольких сайтов
- 19. Автоматическое развертывание для веб-сайтов .NET
- 20. Развертывание Django с тканью
- 21. Azure Web Развертывание публикации старой версии сайтов MVC .dll
- 22. Автоматическое развертывание сайта с Git и Sbt
- 23. Развертывание с использованием центрального репозитория Git
- 24. Azure git развертывание проекта узла с ошибкой
- 25. Развертывание на веб-сервер с GIT
- 26. Развертывание измененных файлов с помощью Git
- 27. Capistrano - развертывание с общим репозиторием git
- 28. Развертывание приложения с git/jenkins/angular
- 29. Развертывание веб-сайта с помощью git
- 30. Развертывание приложений с несколькими проектами через Git
Если репо также включает htdocs или публичный каталог, то есть базу DOCUMENT_ROOT, с которой начинается сайт, никто не сможет получить доступ ./git от внешнего мира. –
Проблема в том, что «.git /» находится справа * под * корнем документа. –