第一步:安装需要的软件
yum install httpd
yum install subversion
yum install mod_dav_svn
如果卸载重新装以上软件:使用命令 :yum -y remove httpd-2.4.6-80.el7.centos.1.x86_64 注:(httpd-2.4.6-80.el7.centos.1.x86_64 这个信息执行命令 yum install httpd 以后,会显示出来)
第二步:创建svn根目录并配置subversion权限
随便找个目录,我创建在/var目录下的
1、mkdir -p /var/svn /* /var/svn是svn的根目录 */
2 、svnadmin create /var/svn/repos /* repos是创建的仓库目录 */
3 、chown -R apache.apache repos
4、chmod -R o+rw /var/svn/repos/ /* 这一步可有可无,改变目录权限 提交代码的时候可能出现没有权限的问题 */
5、 vi /usr/svn/repos/conf/svnserve.conf /* 编辑svn配置文件 */
放开以下行前面的#注释
anon-access = read
auth-access = write
password-db = passwd
authz-db = authz
realm = My First Repository
保存退出
6、vi /usr/svn/repos/conf/passwd
在passwd配置文件中添加如下:
root = 123456 /* 用户名 = 密码 */
保存退出
7、vi /usr/svn/repos/conf/authz
在authz配置文件中添加如下:
[/] /* /表示根目录 即上面创建的根目录/var/svn 不懂使用/即可 */
root = rw /* 用户名 = 读写权限 r表示读权限 w表示写权限 */
保存退出
第三步:配置httpd
1、vi /etc/httpd/conf/httpd.conf
查看是否包含如下代码,没有添加下面代码到httpd.conf文件中
LoadModule dav_svn_module modules/mod_dav_svn.so
LoadModule authz_svn_module modules/mod_authz_svn.so
2、(1)添加如下代码到/etc/httpd/conf/httpd.conf 文件末尾(请看注释)
<Location /svn> /* /svn 比较重要 是虚拟目录 就是你使用http协议访问svn的路径 例如:http://127.0.0.1:8080/svn/repos */
DAV svn
SVNParentPath /var/svn /* 创建的svn根目录 有多个选项可自己查找(不懂就是用这个就行)*/
AuthType Basic /* 这行用这个就行*/
AuthName " SVN server of xuegod!" /* 这行用这个就行*/
AuthUserFile /home/svn/passwd /* 这行是配置httpd 的权限文件 自己随便找个目录 例如 /home/svn/ 详细操作看下面*/
AuthzSVNAccessFile /home/svn/authz /*自己随便找个目录新建一个文件 例如 /home/svn/authz 详细操作看下面 */
Require valid-user
</Location>
(2)创建上面的文件目录 /home/svn/ (这个目录自己选)
执行命令:htpasswd –c /usr/svn/passwd root 执行此命令会提示让你输入两次密码密码将会保存在passwd中
/*使用htpasswd 命令在/var/svn/目录下创建文件passwd 并给用户root设置密码 -c是第一次创建文件使用 如果要改变root密码 或者追加配置另外一个用户密码 一定要去掉 -c 否则将删除原来的passwd文件及内容,重新创建passwd文件 */
(3)在/home/svn/ 目录下创建文件authz
填写如下代码(与svn 配置中的authz配置文件内容一样即可)
[/] /* /表示根目录 即上面创建的根目录/var/svn 不懂使用/即可 */
root = rw /* 用户名 = 读写权限 r表示读权限 w表示写权限 */
(4)修改httpd 默认监听的端口80 (我觉得使用其他端口比较好)
Listen 80 修改为任意你想要使用的端口
第四步 直接暴力关闭防火墙 启动下面程序
1、svnserve -d -r /var/svn/repos 启动svn
2、systemctl start httpd.service 启动httpd
访问 http://ip+端口/根目录/仓库 例如 http://127.0.0.1:8080/svn/repos
浏览器弹出用户名密码验证 完成
可能失败的原因 1、端口未开放
2、如果是阿里云 需要在阿里云官网控制台做安全策略更改
能力有限,如果不清楚的地方可以讨论:QQ:897044323