2009-05-26 116 views
2

我拥有受版本控制的网站。为了使它易于部署到服务器,我正考虑将repo克隆到服务器,并且每当我想更新页面时,只需从服务器中提取更改即可。从安全的角度来看,这是一个糟糕的主意,留下躺在网络服务器上的.git文件夹?使用git安全部署网站

回答

4

您可以在.git中放置任意文件,例如.htaccess文件,这将阻止任何通过Web服务器的访问。

如果你想要一个额外的安全层(如果你忘了把.htaccess那里,而再克隆例如资料库),你可以有你的Web服务器的垃圾通过mod_rewrite担任任何URL与它0​​(前提是你使用Apache,其他Web服务器将使用其他机制)。

+0

如果回购还包含htdocs或公共目录,即网站启动时的基本DOCUMENT_ROOT,则无论如何,没有人能够从外部世界访问./git。 – 2009-05-26 19:04:56

+0

这里的问题是“.git /”位于文档根目录下的*右侧。 – 2009-05-27 13:23:16

3

使用类似git --git-dir=... checkout .这使您能够在html树之外拥有.git目录。你甚至可以通过添加--work-tree使用裸回购:

git --git-dir=... --work-tree=... checkout 

使用裸露的回购协议避免了树的冗余副本,并推到更好。

也可以使用环境变量指定。 git手册页有详细信息。