如果您的工作需要处理文档,网页和定期更新的其他类型的文件,则您可能希望使用版本控制机制(如果您还没有这样做的话)。
除此之外,这允许您(以及一组潜在协作者)跟踪对给定文件所做的更改,如果遇到问题或更新没有产生预期结果,您可以回滚到以前的版本。
在自由软件生态系统中,最广泛使用的版本控制系统被称为Apache的颠覆 (SVN或简称)。 随着的mod_dav_svn的帮助下(Apache的模块颠覆),你可以使用HTTP和Web服务器访问Subversion库。
这就是说,让我们卷起袖子,并在RHEL / CentOS的7,Fedora 的22-24,Debian 的8/7和Ubuntu 16.04-15.04服务器上安装这些工具。 对于我们的测试中,我们将使用与IP 192.168.0.100一个CentOS 7服务器。
在客户端(在Windows 7机),我们将安装并使用TortoiseSVN(这是基于Apache Subversion的)为SVN的接口。
我们的测试环境
Server - CentOS 7 IP Address - 192.168.0.100 Client - Windows 7
第1步 - 在Linux上安装和配置SVN
正如我们刚才提到的,我们将依靠Apache来使用Web界面访问SVN存储库。 如果尚未安装,请确保将其添加到软件包列表中,如下所示:
------------------ On CentOS / RHEL / Fedora ------------------ # yum update && yum install mod_dav_svn subversion httpd -y ------------------ On Debian / Ubuntu ------------------ # apt-get update && apt-get install libapache2-svn subversion apache2 -y
安装在CentOS 7月期间,SVN的Apache配置文件会/etc/httpd/conf.modules.d/10-subversion.conf被创建。 打开文件并添加以下配置块:
<Location /svn> DAV svn SVNParentPath /websrv/svn AuthType Basic AuthName "Welcome to SVN" AuthUserFile /etc/httpd/subversion-auth Require valid-user </Location>
配置Apache SVN模块
注 :在Debian / Ubuntu的你需要添加以下行/etc/apache2/mods-enabled/dav_svn.conf
文件。
<Location /svn> DAV svn SVNParentPath /websrv/svn AuthType Basic AuthName "Welcome to SVN" AuthUserFile /etc/apache2/subversion-auth Require valid-user </Location>
在Debian / Ubuntu的 ,你需要启用dav_svn Apache模块:
# a2enmod dav_svn
几个澄清:
- SVNParentPath指示指示了我们的仓库将在以后创建的目录。 如果此目录不存在(这是最可能的情况),请使用以下命令创建:
# mkdir -p /websrv/svn
要注意,此目录不能位于内部,或者重叠是很重要的,目前正由Apache的送达虚拟主机的DocumentRoot的 , 这是一个搅局!
- 该指令的AuthUserFile指示了一个有效的用户的凭据将存储文件。 如果要允许所有人在没有身份验证的情况下访问SVN,请删除位置块中最后四行。 如果是这样的话,请跳过第2步,直接前往第3步 。
- 虽然您可能想重新启动Apache以便应用这些最近的更改,但不要这样做,因为我们仍然需要为SVN和存储库本身创建有效用户的身份验证文件。
第2步 - 添加允许的用户访问SVN
现在,我们将使用的htpasswd创建将被允许访问的SVN账户的密码。 对于只有第一个用户,我们将需要-c
选项。
允许的帐户和bcrypt加密的口令( -B
)将被存放在/ etc / httpd的/键-值对颠覆-auth的 。 请注意,按今天的标准,htpasswd使用的默认MD5或SHA加密被认为不安全。
------------------ On CentOS / RHEL / Fedora ------------------ # htpasswd -cB /etc/httpd/subversion-auth youcl ------------------ On Debian / Ubuntu ------------------ # htpasswd -cB /etc/apache2/subversion-auth youcl
不要忘记为身份验证文件设置正确的所有权和权限:
------------------ On CentOS / RHEL / Fedora ------------------ # chgrp apache /etc/httpd/subversion-auth # chmod 660 /etc/httpd/subversion-auth ------------------ On Debian / Ubuntu ------------------ # chgrp www-data /etc/apache2/subversion-auth # chmod 660 /etc/apache2/subversion-auth
第3步 - 添加安全性并创建SVN存储库
既然你将通过Web界面来访问SVN,你需要允许HTTP(和可选HTTPS)通信通过防火墙。
------------------ On CentOS / RHEL / Fedora ------------------ # firewall-cmd --add-service=http --permanent # firewall-cmd --add-service=https --permanent # firewall-cmd --reload
通过重新加载与防火墙配置--reload
,永久设置立即生效。
创建初始SVN仓库称为youcl:
# svnadmin create /websrv/svn/youcl
更改所有者和组所有者递归Apache :
------------------ On CentOS / RHEL / Fedora ------------------ # chown -R apache:apache /websrv/svn/youcl ------------------ On Debian / Ubuntu ------------------ # chown -R www-data:www-data /websrv/svn/youcl
最后,您需要更改的安全上下文/websrv/svn/youcl
(请注意,您将不得不重复此步骤,如果你决定以后创建其他库):
------------------ On CentOS / RHEL / Fedora ------------------ # chcon -R -t httpd_sys_content_t /websrv/svn/youcl/ # chcon -R -t httpd_sys_rw_content_t /websrv/svn/youcl/
注意 :如果你在使用SELinux的残疾人VPS安装SVN最后两个命令可能不适用。
建议阅读: 学会如何在Linux下暂时或永久禁用SELinux
重新启动Apache和验证库可用。
------------------ On CentOS / RHEL / Fedora ------------------ # systemctl restart httpd ------------------ On Debian / Ubuntu ------------------ # systemctl restart apache2
然后启动一个网页浏览器,并指向它http://192.168.0.100/svn/youcl
。 进入凭据我们在第1步中创建的有效的用户后,输出应该类似于:
通过浏览器访问SVN存储库
在这一点上,我们没有添加任何代码到我们的存储库。 但我们会在一分钟内完成。
第4步 - 在Windows 7客户端中安装TortoiseSVN
正如我们在介绍中提到,TortoiseSVN是一个友好的用户界面到Apache Subversion的。 在GPL下它是免费的软件许可,可以从下载https://tortoisesvn.net/downloads.html 。
选择与你的机器架构(32位或64位 ),并在继续之前安装程序。
第5步 - 在客户端计算机上设置SVN存储库
在这一步中,我们将使用一个文件夹中名为webapp
的内部文件 。 此文件夹包含HTML文件,两个文件夹命名为脚本和样式与Javascript和(分别的script.js和styles.css中 ,)一个CSS文件,我们要添加到版本控制。
右击Web应用程序 ,然后选择SVN结帐。 这将创建远程存储库(此时为空)的本地副本,并初始化用于版本控制的文件夹:
在客户端目录上配置SVN
在资料库中,键入网址http://192.168.0.100/svn/youcl
并确保本地结帐目录保持不变,然后单击确定 :
在客户端上配置SVN存储库
输入用户名和密码(请参阅第2步),然后单击OK:
输入SVN用户的凭据
你会被询问是否要签成一个非空目录, 确认结账继续。 一旦完成,文件夹名称旁边将显示一个绿色复选标记:
签出SVN目录
第6步 - 提交更改并将文件部署到远程SVN存储库
右键单击webapp
再次选择提交这个时候。 接下来,编写一个描述性注释,以后识别此提交,并检查要部署到存储库的文件和文件夹。 最后,单击OK:
将文件部署到远程SVN存储库
根据文件的大小,提交不应超过一分钟。 当它完成后,你会看到,我们现在对修订版1,这在Web界面中列出的版本和文件相匹配:
确认SVN存储库修订
如果有几个人在同一个文件时,你需要更新您的本地副本,以便有提供工作的最新版本。 为此,您可以通过右键单击webapp
,然后从上下文菜单中选择更新 。
恭喜!您已成功安装版本控制的SVN服务器和COMMITED /更新的一个简单的项目。
概要
在这篇文章中,我们已经解释了如何安装和一个CentOS 7服务器上配置一个Apache Subversion仓库服务器,以及如何提交修改到使用TortoiseSVN版本库。
请注意,不是我们能够充分覆盖这里(特别是如何恢复到以前的版本),所以你可能要参考官方文档(多为SVN和TortoiseSVN SVN和TortoiseSVN的 )的详细信息和配置情况。
和往常一样,如果您有任何问题,请随时与我们联系! 请随时使用以下评论表单随时与我们联系。