centos 安装svn

1.在服务器安装svn 

yum install subversion -y 

2.检查是否安装成功 
svnserve –version 

3.创建一个版本库 
mkdir /opt/svn/project  创建目录

svnadmin create /opt/svn/project 初始化版本

cd /opt/svn/project

[root@bogon project]# ls
conf  db  format  hooks  locks  README.txt

4.配置文件 (因忘记截图,摘抄了http://blog.youkuaiyun.com/qq_30259339/article/details/50850951 这位前辈的博客.大家注意路径问题)

1. 设置passwd 
这里写图片描述 
这样我们就建立了test用户, 123密码 。 
2. 设置权限authz 
这里写图片描述 
设置test用户对所有的目录有读写权限,当然也可以限定。 
3. 设定svnserve.conf

anon-access = none # 使非授权用户无法访问 
auth-access = write # 使授权用户有写权限 
password-db = password 
authz-db = authz # 访问控制文件 
realm = /opt/svn/repos # 认证命名空间,subversion会在认证提示里显示,并且作为凭证缓存的关键字。 
采用默认配置. 以上语句都必须顶格写, 左侧不能留空格, 否则会出错. 
这里写图片描述
4. 启动svn 
killall svnserve //先杀死所有的SVN进程 
svnserve -d -r /opt/svn/project 
svn import /data/wwwroot/www.a.com/  file:///opt/svn/project -m “ss”

5.设置防火墙允许访问3690端口 (一定要防火墙设置,不论有没有firewall running or not)
vi /etc/sysconfig/iptables 
-A INPUT -m state --state NEW -m tcp -p tcp --dport 3690 -j ACCEPT 
systemctl restart iptables.service 


如果没有意外,现在可以连接svn了

遇到的坑:

Store password unencrypted (yes/no)? 
Please type 'yes' or 'no': no
svn: E170001: Authorization failed(认证失败)

修改文件 # vi /root/.subversion/servers 看清楚 global的选项,有个跟它一样的配置文件,改了没效果的


自动更新到web目录:

[root@bogon project]# cd /var/svn/project/hooks/
[root@bogon hooks]# vi post-commit

添加如下文件

#!/bin/sh
REPOS="$1"
REV="$2"
export LANG=en_US.UTF-8
svn update /data/wwwroot/project --username user --password passwd
exit 0

:wq

给文件权限 chmod 777 post-commit

[root@bogon hooks]# killall svnserve

[root@bogon hooks]# svnserve -d -r /var/svn/

[root@bogon hooks]# svn co svn://127.0.0.1/project

现在本地check 可以自动更新到网站project里面了

[root@bogon hooks]# whereis svnserve
svnserve: /usr/bin/svnserve /usr/share/man/man8/svnserve.8.gz

vi /etc/rc.d/rc.local 添加如下 启动服务

/usr/bin/svnserve -d -r /var/svn

追加更新:

centos7.0 开机启动有问题.上面的脚本无法执行开机启动

使用下面的方法:

vi /etc/sysconfig/svnserve  看下启动目录是否对应,如果不对应修改即可

systemctl enable svnserve.service  运行后提示创建成功 ok

重启动一下试试吧





<think>好的,我现在需要帮助用户解决在CentOS安装SVN的问题。首先,我需要回忆一下相关的步骤,并确保信息的准确性。根据用户提供的引用,特别是引用[1]和引用[2],这两个资源都提到了在CentOS安装SVN的步骤,结合Apache和可能的HTTPS配置。不过用户现在主要问的是安装步骤,可能不需要立即配置HTTPS,但可能需要基础安装指南。 首先,安装SVN通常需要安装Apache和mod_dav_svn模块。CentOS 6和7的步骤可能有所不同,但用户的问题没有指定版本,可能需要考虑通用的方法,或者根据引用中的CentOS 6和7的情况分开说明。不过用户的问题可能更倾向于CentOS 7,因为引用[2]提到了CentOS 7,但引用[1]是CentOS 6。不过用户只是要安装步骤,可能需要通用的部分。 接下来,我需要检查安装步骤是否正确。通常步骤是: 1. 更新系统包 2. 安装Apache和SVN相关软件包(subversion, mod_dav_svn) 3. 配置Apache以支持SVN 4. 创建仓库并设置权限 5. 启动服务并测试 需要确保这些步骤在CentOS上适用。例如,安装subversion和mod_dav_svn可能需要使用yum或dnf,取决于CentOS版本。对于CentOS 7,应该使用yum。 然后,用户可能需要创建仓库目录,设置SELinux上下文,配置Apache的配置文件,例如在/etc/httpd/conf.d/subversion.conf中添加Location块,指向仓库路径,并启用认证,如Basic Auth。这可能涉及创建密码文件,使用htpasswd命令。 另外,引用[1]提到使用USVN,但用户可能不需要这个,所以需要区分是否要安装USVN还是普通的SVN。根据用户的问题,他可能只需要普通的SVN安装,所以可能需要忽略USVN部分,专注于subversion和Apache的集成。 同时,引用[2]提到了使用Let's Encrypt配置HTTPS,但用户当前的问题可能不需要这部分,除非用户后续需要。因此,安装步骤应该集中在基本安装,可能提及后续配置HTTPS作为可选步骤。 需要确保每个步骤的命令正确,例如安装包名称是否正确,Apache服务名称是否正确(httpd),以及仓库路径的权限设置是否正确,包括SELinux的配置,如果启用的话,可能需要使用chcon或semanage命令。 另外,防火墙配置可能需要开放HTTP/HTTPS端口,用户可能需要运行firewall-cmd命令,这部分是否需要包含?可能作为步骤的一部分,以确保用户安装后可以访问。 最后,测试部分,用户可能需要通过浏览器或svn客户端访问仓库URL,比如http://服务器IP/svn/仓库名,并进行检出操作。 现在,需要将这些步骤整理成用户容易理解的逐步指南,确保命令正确,并且注意事项如SELinux和防火墙被提及。同时,根据引用中的信息,引用[1]和[2]提供了相关步骤,可以引用这些来源作为参考。</think>以下是在CentOS系统上安装Subversion(SVN)的分步指南,结合Apache实现Web访问支持: ### 一、安装基础软件包 ```bash # 更新系统并安装必要组件 sudo yum update -y sudo yum install -y httpd subversion mod_dav_svn ``` 安装完成后验证版本:`svn --version`[^1] ### 二、创建SVN仓库 ```bash # 创建仓库目录并初始化 sudo mkdir -p /var/www/svn sudo svnadmin create /var/www/svn/myrepo # 设置目录权限(根据实际用户调整) sudo chown -R apache:apache /var/www/svn sudo chmod -R 775 /var/www/svn # 若启用了SELinux需执行: sudo chcon -R -t httpd_sys_content_t /var/www/svn sudo chcon -R -t httpd_sys_rw_content_t /var/www/svn/myrepo ``` ### 三、配置Apache集成 1. 创建配置文件: ```bash sudo vi /etc/httpd/conf.d/subversion.conf ``` 2. 添加以下内容(按实际路径修改): ```apache 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 SVNListParentPath On # 启用基本认证 AuthType Basic AuthName "Subversion Repository" AuthUserFile /etc/svn-auth-conf Require valid-user </Location> ``` ### 四、创建用户认证 ```bash # 创建第一个用户(重复执行可添加多个用户) sudo htpasswd -cm /etc/svn-auth-conf admin ``` ### 五、启动服务 ```bash sudo systemctl enable httpd sudo systemctl start httpd # 开放防火墙(若启用) sudo firewall-cmd --permanent --add-service=http sudo firewall-cmd --reload ``` ### 六、验证安装 1. 浏览器访问:`http://服务器IP/svn/myrepo` 2. 命令行测试: ```bash svn checkout http://localhost/svn/myrepo test-repo ```
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值