【问题标题】:Subversion for web designer: repository on a network share and ftp to the live server?网页设计师的颠覆:网络共享上的存储库和 ftp 到实时服务器?
【发布时间】:2010-06-10 15:45:36
【问题描述】:
我的配置:
- Windows 网络共享上的 htdocs (z:)
- Web 开发人员使用 dreamweaver 签出并修改并签入驱动器 z
- LAMP 在 Hyper-V 上虚拟化的 Ubuntu 服务器上运行,Apache 指向 z 驱动器供开发人员测试网站
- 在实时服务器上通过 FTP 上传
现在:
我需要对存储库进行多次访问,将它们保存在网络共享中,我们管理着大约 200 个网站。所有 Web 开发人员、管理员和 IT 都需要访问共享。
我发现创建 svn 服务器对我来说是最好的方法,所以我在 Hyper-V 上虚拟化的 Ubuntu 服务器上创建了它。现在我在 Ubuntu 服务器上有本地存储库,但我希望它们在我的网络驱动器上,如果可能的话,我希望有一个 post-commit,以便直接在我的实时服务器上进行 ftp。你们认为 WebDav 解决方案会更好吗?
提前致谢
安杰洛
【问题讨论】:
标签:
svn
ftp
networking
share
【解决方案1】:
subversion 服务器更像是一个传统的客户端-服务器架构,配置 SVN 服务器以响应网络访问,从所需的远程机器检查代码,并在那里构建它。
较旧的源代码控制软件直接从文件存储库中读取。虽然 subversion 确实支持直接从存储库读取,但在应该是直接文件读取之间引入网络通常会产生您希望避免的问题。不要使用直接文件访问,而是使用网络访问,它在编写时考虑了可能的超时、存储库中断(由网络中断引起)以及其他与网络相关的问题。
如果您发现访问 SVN 的 svnserve 技术有点笨拙(您必须分配一个端口,并且可能在防火墙上打开一个端口),听起来您的环境通过 SVN 隧道会做得更好跨 HTTP 或 HTTPS。有一个 Apache 模块(名为 mod_svn),它将 HTTP GET 及其 URL 转换为 SVN 请求并将数据移回,就好像它是一个简单的网页请求一样。该模块还允许对 SVN 存储库进行一些有限的浏览。
【解决方案2】:
我要注意,与其将提交后设置为将 FTP 文件设置到服务器,不如设置一个简单的 PHP 文件添加到每个站点以触发服务器运行颠覆更新,这可能对您有利。这避免了 FTP 的安全漏洞。您所要做的就是将站点从 subversion 中拉出一次,确保所有权和权限正确,确保允许这个特定的 php 文件通过 shell 命令,然后您的 post-commit 挂钩将运行 php 文件反而。显然,必须为每个存储库正确配置提交后挂钩,但您也必须使用您的 FTP 方法来执行此操作,而且设置起来可能会更复杂。