公司一内网服务器,需要安装svn服务,找了半天人,最后还是我来安装。
为了后续查找方便,随手记录下来。
专机专用,安装最小版的CentOS7,由于需要使用ftp服务,所以安装系统时选了ftp server,其他组件都没有选。
用root用户登录,先安装httpd和svn及 mod_dav_svn:
yum install httpd subversion mod_dav_svn -y
创建版本库仓库目录/var/www/svn,然后在这个目录下创建一个版本库repo,最后将目录所有者修改成apache:
由于selinux的关系,httpd只能访问/var/www/目录之下的文件。所以,版本库及配置文件,都存放在/var/www/svn之下。否者会出现文件访问无权限的问题。
因为这个问题,机器被我重装了3遍,黑人脸+黑线+乌鸦~呜...
svnadmin create repo
# 重要,设置版本库的所有者
chown -R apache:apache /var/www/svn/repo/
# 非常重要,重设SELinux的安全上下文
chcon -R -t httpd_sys_content_rw_t /var/www/svn/repo
# 也可以使用:setsebool -P httpd_unified=1
在/var/www/svn下创建用户及授权文件:
touch /var/www/svn/passwd
htpasswd -m /var/www/svn/passwd Kevin
vim /var/www/svn/authz
# 编辑内容,为用户授权
[/]
kevin = rw
roy = r
配置svn,重新指定svn仓库目录:
vim /etc/sysconfig/svnserve
# 修改成对应的目录
OPTIONS="-r /var/www/svn"
配置httpd,连接到svn:
vim /etc/httpd/conf.d/subversion.conf
# 修改对应目录及用户授权文件等
<Location /svn>
DAV svn
SVNParentPath /var/www/svn
AuthType Basic
AuthName "SII SVN Repo"
AuthzSVNAccessFile /var/www/svn/authz
AuthUserFile /var/www/svn/passwd
Require valid-user
</Location>
设置服务自启动,并启动服务:
systemctl enable httpd.service
systemctl restart httpd.service
打开防火墙:
firewall-cmd --permanent --add-service=http
firewall-cmd --permanent --add-service=https
firewall-cmd --reload
2018年6月23日,成都太保办公室加班。
网友评论