合理的 版本控制系统 与 web 服务器 的架构方法?
问题:
在同一服务器中搭建了一个 版本控制系统 然后 web服务 的站点目录是直接指向版本控制系统里面的项目位置,还是在自定义的web服务器站点目录,单独clone出版本里面的项目。
为什么要那么做?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
问题:
在同一服务器中搭建了一个 版本控制系统 然后 web服务 的站点目录是直接指向版本控制系统里面的项目位置,还是在自定义的web服务器站点目录,单独clone出版本里面的项目。
为什么要那么做?
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
接受
或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
发布评论
评论(4)
不建议将web服务的目录指定到版本控制系统中的项目位置下面,主要是出于安全考虑
因为版本控制系统生成的文件中包含很多代码的信息,比如.svn这类文件
http://example.com/stuff/.svn/entries
http://example.com/stuff/.svn/text-base/page.php.svn-base
http://example.com/stuff/.svn/text-base/settings.py.svn-base
这些会泄露很多信息,带来攻击的可能。git也是同理。
应该在git服务器上做个钩子,一有commit,就上传最新的代码到web服务器上去。
不推荐代码库和web服务器目录放在一块。
1,.svn等文件夹可以用webserver自带的屏蔽功能禁止外部访问,但是如果代码出问题,有洞那么hacker就会直接从外部修改你的代码库,可以直接修改先前版本的代码,也就是回滚了也没用。
2,千万不要在线上调试。专用的调试服务器可以把代码和目录放在一块,但是线上的产品还是慎重。
3,代码要集中管理。
4.。。。。。。
有种黑科技叫做svn post-commit,svn export,应该可以解决题主的问题。
不知道对不对得上你的问题。
我一般是用git做版本控制,web站点存在其可用的工作目录(这是有Apache配置决定的),新建项目可以用git初始化这个工程文件夹就行了,就被git跟踪了,而不是将web站点存放在git的项目文件夹中。
至于为什么这个问题,个人认为他们本来就是两个分离的东西,他们都是服务于你的项目的辅助软件,你不可能把项目文件夹放到每个软件的工程目录下。