完美的Subversion服务器 - Debian Lenny [ISPConfig3]
Subversion是一个免费/开源版本控制系统。 也就是说,Subversion管理文件和目录,以及随着时间的推移对其进行的更改。 这可以让您恢复旧版本的数据,或查看数据更改的历史记录。 在这方面,很多人认为版本控制系统是一种“时间机器”。 本指南将帮助您设置subversion系统,并将其与现有的ISPConfig3安装进行集成,从而以非常熟悉的方式控制磁盘使用率,配额和其他因素。 也许有一天,有人可以使用这个过程为ISPConfig3创建一个插件,自动执行所有这一切。
要求
显然,这个操作方法要求您已经安装并运行ISPConfig3。 下面列出的步骤也可能与ISPConfig2一起使用,但尚未经过测试,将不被支持。 如果还没有这样做,请继续阅读“完美服务器 - Debian Lenny [ISPConfig3]”中的falko指南。
为了允许单个网站拥有多个存储库,我们将把所有内容都放在“svn”文件夹下,最终到您的存储库的公共路径看起来像http://example.com/svn/myrepo
。 但在开始之前,您需要为“example.com”创建该站点。 创建网站和设置配额选项不在此操作的范围之内,但如果您以前没有做到这一点,则相当简单。
安装Subversion
安装Subversion和所需的Apache模块非常简单(以root身份运行,或使用sudo):
apt-get install subversion libapache2-svn
创建一个Repo(sitory)
默认情况下,ISPConfig将站点存储在/ var / clients / clientx / weby /中
,您需要知道要设置存储库的站点的哪个客户端ID(x)和站点ID(y)。 如果您对默认路径进行了任何调整,则需要修改以下命令以匹配目录结构。 首先创建svn目录(您只需为每个站点执行一次):
mkdir /var/clients/clientx/weby/svn
接下来,您需要创建存储库并更正所有权限(对配额检查非常重要)。
svnadmin create /var/clients/clientx/weby/svn/myrepo
chown -R weby:clientx /var/clients/clientx/weby/svn
chmod -R 770 /var/clients/clientx/weby/svn
共享和保护存储库
我们将使用apache来共享和保护对我们的存储库的访问,而在共享步骤总是相同的时候,我们有三个保护存储库的选项。
- 公共存储库 - 公共存储库意味着任何用户都可以随时下载和浏览(检出)和上传(提交)文件而不受限制。 这通常不是部署存储库的推荐方法,因为它可能导致您的代码的破坏。
- 共享存储库 - “共享”存储库意味着任何人都可以下载和浏览(检出)代码,但只有授权用户可以提交存储库。 这是保护存储库的最常见方法,类似于Sourceforge和Google Code等网站共享数据。
- 私有存储库 - 私有存储库意味着针对存储库的任何操作都需要经过身份验证的用户,并且在代码不意味着共享或开放源代码时很有用。
假设您选择共享或私有存储库,则需要创建存储“授权”用户的用户名和密码的密码文件(添加其他用户,从命令中省略“-c”选项)。
htpasswd -c /var/clients/clientx/weby/svn/myrepo.passwd [username1] <-- you'll be asked to enter a password for username1
最后,您需要添加相应的指令来告诉Apache在用户请求http://example.com/svn/myrepo
时该怎么办。 根据您希望使用的安全方法,复制下面的相应指令,并将其粘贴到“Apache指令”框中,位于ISPConfig中您网站的“选项”选项卡上(请勿忘记使用适当的x修复目录和y值)。
公共回购
<Location /svn/myrepo>
DAV svn
SVNPath /var/clients/clientx/weby/svn/myrepo
</Location>
共享回购
<Location /svn/myrepo>
DAV svn
SVNPath /var/clients/clientx/weby/svn/myrepo
AuthType Basic
AuthUserFile /var/clients/clientx/weby/svn/myrepo.passwd
<LimitExcept GET OPTIONS PROPFIND REPORT>
Require valid-user
</LimitExcept>
</Location>
私人回购
<Location /svn/myrepo>
DAV svn
SVNPath /var/clients/clientx/weby/svn/myrepo
AuthType Basic
AuthName "Indemnity83 Scripts"
AuthUserFile /var/clients/clientx/weby/svn/myrepo.passwd
Require valid-user
</Location>
进行更改后,网站可能需要一分钟才能开始工作,但此时您应该有一个工作和安全的Subversion版本库。 如果你想添加更多,只需重复从“创建一个Repo(sitory)”开始的所有内容。
谢谢
我希望你能发现这个如何有用。 请随意添加评论或更正。