安装思路
服务器的主http服务已经安装了nginx,svn没有提供nginx的模块,因此需要apache作为中间服务器支持对svn的连接,然后通过nginx做代理,连接到apache上
安装过程
参考:
用 Apache 和 Subversion 搭建安全的版本控制环境:https://developer.ibm.com/zh/articles/j-lo-apache-subversion/
Subversion : Access to Repositories via HTTP:https://www.server-world.info/en/note?os=Debian_12&p=subversion&f=4
安装配置svn:https://subversion.apache.org/packages.html
# yum install svn
创建svn库
# mkdir -p /var/svn
# mkdir -p /var/svn/conf
# touch /var/svn/conf/passwd
# touch /var/svn/conf/authz
创建密码文件
# htpasswd /var/svn/conf/passwd 用户名
把“用户名”改成你需要的名字就可以了,可以使用中文
安装配置apache
# yum install httpd
# systemctl enable httpd
注意要把httpd的默认80端口换掉,避免与nginx冲突
# vi /etc/httpd/conf/httpd.conf
Listen 8081
安装svn的apache支持模块
装完apache再装支持模块,会使得支持模块自动添加到配置文件中,不需要手动添加配置文件
# yum install mod_dav_svn -y
检查安装结果
# ls /etc/httpd/modules/ | grep svn
mod_authz_svn.so
mod_dav_svn.so
设置版本库网站,要注意的是,版本库的网站不是iF.SVNAdmin的网站,当用户通过svn命令访问服务器时是通过apache访问svn的,启用apache的mod_dav_svn 模块后,不需要启用svn服务
# vi /etc/httpd/conf.d/w_svn_9001.conf
Listen 9001
<Location /svn>
DAV svn
SVNParentPath /var/svn
AuthType Basic
AuthName "svn repos"
AuthUserFile /var/svn/conf/passwd # 指定密码文件
AuthzSVNAccessFile /var/svn/conf/auth # 指定权限文件
Satisfy Any
Require valid-user
</Location>
(配置好后测试,待完善…)
安装PHP
# yum install php php-xml -y
安装配置iF.SVNAdmin
下载iF.SVNAdmin,GitHub - mfreiholz/iF.SVNAdmin: Web-based GUI to manage Subversion repositories and User/Group permissions (+LDAP support),拷贝到正确的目录上,配置httpd连接svn
启动服务
# systemctl start httpd
(配置好后测试,待完善…)
设置nginx代理
在主网站的网站配置文件中,添加代理支持
locate /svn
{
proxy_pass http://127.0.0.1:9001;
}
(配置好后测试,待完善…)