凌峰创科服务平台

Linux下SVN服务器如何搭建?

在Linux环境下搭建SVN服务器通常使用Apache Subversion(SVN)软件包,结合Apache HTTP服务器实现Web访问,以下是详细步骤:首先需要更新系统软件包列表并安装必要的软件,包括svnserve(SVN核心服务)、apache2(Web服务器)和libapache2-svn(Apache与SVN的模块),在Ubuntu/Debian系统中,可通过命令sudo apt update && sudo apt install subversion apache2 libapache2-svn完成安装,CentOS/RHEL则需要使用sudo yum install subversion httpd mod_dav_svn

Linux下SVN服务器如何搭建?-图1
(图片来源网络,侵删)

安装完成后,创建SVN仓库目录,例如sudo mkdir -p /var/svn/repos,然后使用svnadmin create /var/svn/repos/project1命令初始化仓库,初始化后,需要配置仓库访问权限,编辑/var/svn/repos/project1/conf/svnserve.conf文件,设置匿名用户访问权限为none,并指定认证方式为passwd-db = passwd,接着在passwd文件中添加用户,如user1 = password123,并设置权限文件authz,定义用户或用户组的读写权限,例如[/] user1 = rw表示用户user1对根目录有读写权限。

若通过Apache访问SVN,需配置Apache模块,创建配置文件/etc/apache2/mods-available/dav_svn.conf(或CentOS下的/etc/httpd/conf.d/subversion.conf),添加以下内容:

<Location /svn>  
DAV svn  
SVNParentPath /var/svn/repos  
AuthType Basic  
AuthName "SVN Repository"  
AuthUserFile /etc/svn-users  
Require valid-user  
</Location>  

其中/etc/svn-users是使用htpasswd -cm /etc/svn-users user1命令创建的Apache认证文件,完成后启用模块并重启Apache:sudo a2enmod dav_svn && sudo systemctl restart apache2(CentOS为sudo systemctl restart httpd)。

防火墙需开放SVN默认端口(3690)和HTTP端口(80),Ubuntu中执行sudo ufw allow 80/tcp && sudo ufw allow 3690/tcp,CentOS则使用sudo firewall-cmd --permanent --add-service=http && sudo firewall-cmd --permanent --add-port=3690/tcp && sudo firewall-cmd --reload,最后测试SVN服务,通过svn co svn://localhost/project1svn co http://localhost/svn/project1验证仓库是否可访问。

Linux下SVN服务器如何搭建?-图2
(图片来源网络,侵删)

以下是相关问答FAQs:
Q1: 如何备份SVN仓库?
A1: 可使用svnadmin dump命令备份,例如svnadmin dump /var/svn/repos/project1 > project1_backup.dump,恢复时则用svnadmin load /var/svn/repos/project1 < project1_backup.dump,建议定期备份并压缩文件以节省空间。

Q2: SVN服务无法启动,如何排查?
A2: 首先检查端口占用情况,使用netstat -tuln | grep 3690确认端口未被占用;其次查看日志文件,如/var/log/apache2/error.log/var/log/svnserve.log,定位错误信息;最后检查配置文件语法,Apache可通过apache2ctl configtest验证,SVN则需确认svnserve.conf中的配置项未被注释且格式正确。

Linux下SVN服务器如何搭建?-图3
(图片来源网络,侵删)
分享:
扫描分享到社交APP
上一篇
下一篇