简介
近期出于工作需要,需要在云服务器上布置一个centos7的服务器,并搭建好svn服务器。在这里记录一下搭建过程。
在此过程中,主要参考了3个教程。
按理说来照着这3个教程走一遍流程,也就能完成了,但笔者担心万一此后这3篇博文出于某些乱七八糟的原因而无法找到,故仍在下文记录了整个流程,以供将来查询。
搭建过程
安装插件
- 安装apache服务
yum install httpd -y - 安装svn服务(其中,mod_dav_svn是apache服务器访问svn的一个模块)
yum install mod_dav_svn subversion -y - 安装iF.SVNAdmin(SVN的Web端GUI)
yum install php -y
配置插件
- vim /etc/httpd/conf.d/subversion.conf
-
LoadModule dav_svn_module modules/mod_dav_svn.so LoadModule authz_svn_module modules/mod_authz_svn.so <Location /svn> DAV svn SVNParentPath /var/www/svn #svn的根目录SSLRequireSSL #SSL访问权限 AuthType Basic #Basic认证方式 AuthName "Authorization SVN" #认证时显示的信息 AuthUserFile /var/www/svn/passwd #用户文件&密码 AuthzSVNAccessFile /var/www/svn/authz #访问权限控制文件 Require valid-user #要求真实用户,不能匿名 </Location>
- 建立svn仓库
- 这里要注意svn仓库的根目录要和上一步配置的SVNParentPath一致
mkdir /var/www/svn - 建立代码仓库sungeek
svnadmin create /var/www/svn/sungeek - ls /var/www/svn/sungeek
---> conf db format hooks locks README.txt - 给apache(即httpd服务)权限
chown -R apache.apache /var/www/svn - 创建用户文件passwd和权限控制文件authz
touch /var/www/svn/passwd
touch /var/www/svn/authz
- 这里要注意svn仓库的根目录要和上一步配置的SVNParentPath一致
- 配置iF.SVNAdmin
- wget http://sourceforge.net/projects/ifsvnadmin/files/svnadmin-1.6.2.zip/download
- unzip download
- cd /var/www/html
chown -R apache.apache svnadmin - cd /var/www/html/svnadmin
chmod -R 777 data
在这一步要注意,可能有的centos7开启了SELinux,即使这里给予了权限,但仍会导致iF.SVNAdmin无法使用。必须关闭SELinux才可以。
- 关闭SELinux
- 查看状态,如果disable则已经关闭,可以跳过以下步骤
getenforce - 临时关闭
setenforce 0 - 永久关闭
vim /etc/selinux/config
将SELINUX=enforcing改为SELINUX=disabled# This file controls the state of SELinux on the system. # SELINUX= can take one of these three values: # enforcing - SELinux security policy is enforced. # permissive - SELinux prints warnings instead of enforcing. # disabled - No SELinux policy is loaded. SELINUX=enforcing #这里改成disabled # SELINUXTYPE= can take one of three two values: # targeted - Targeted processes are protected, # minimum - Modification of targeted policy. Only selected processes are protected. # mls - Multi Level Security protection. SELINUXTYPE=targeted
- 查看状态,如果disable则已经关闭,可以跳过以下步骤
- 通过查看文件/usr/lib/systemd/system/svnserve.service, 了解到svnserver的配置文件是/etc/sysconfig/svnserve
修改/etc/sysconfig/svnserve- vim /etc/sysconfig/svnserve
OPTIONS="-r /var/svn" ======> OPTIONS="-r /var/www/svn"
同理,这里的路径也是和上面配置的SVN根目录保持一致
- vim /etc/sysconfig/svnserve
- 开启http服务
- firewall-cmd --permanent --add-service=http
- firewall-cmd --permanent --add-service=https
- firewall-cmd --reload
- 通过如下命令来启用服务
systemctl start httpd.service - 如下命令使其开机自启动
systemctl enable httpd.service - 重启Apache
systemctl restart httpd.service
- 在iF.SVNAdmin配置svn
- 在浏览器里输入 http://ip/svnadmin,配置如下图,配置后可以通过Test来测试是否正常
- 保存后,会提示默认的账户为admin/admin。
而此后的配置,通过此GUI就方便很多了。笔者就不过多介绍了
后记
在搭建的时候,使用iF.SVNAdmin出现提示,没有办法复制svnadmin/data/...
但明明此前是通过chmod给予权限了的,在网上查找了资料后发现可能是SELinux的问题,关闭之后果然ok了。
特此记录,以防忘记。
引用:
与简介中的链接一样,只是这里直接写明链接地址
https://www.cnblogs.com/Sungeek/p/6905102.html