http搭建SVN

一.安装HTTP和SVN相关软件包

yum install httpd subversion  mod_dav_svn  -y

centos7搭建jellyfin centos7搭建http_centos


等待安装完成即可

二.文件配置
1.在/etc/httpd/conf.d/目录下创建subversion.conf

vi /etc/httpd/conf.d/subversion.conf

centos7搭建jellyfin centos7搭建http_svn_02


2.添加以下命令,然后保存退出

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

centos7搭建jellyfin centos7搭建http_版本库_03


配置说明:

<Location /svn>

意味着可以通过这样的url(http://ip/port/svn)来访问svn版本库

DAV svn

指定模块

SVNParentPath /var/www/svn/

版本库的位置根目录,这里设置的是/var/www/svn/

AuthType Basic

启用基本的验证,比如用户名/密码对

AuthName "SVN Repository"

一个提示信息,告诉用户验证是干什么用的

AuthUserFile /etc/svn-auth-accounts

用来存储svn账号密码的文件,这里放在了/etc/svn-auth-accounts

AuthzSVNAccessFile /etc/httpd/conf.d/authz

用来设置用户在版本库中目录的访问权限,目前这里没有配置(后面会说明)

Require valid-user

类似于form表单的验证。只有录入正确用户和密码才能访问

三.创建SVN用户
方法一: 先创建用户,再设置密码

htpasswd -cm /etc/svn-auth-accounts adrian

centos7搭建jellyfin centos7搭建http_svn_04


方法二: 用户名和密码一起创建

htpasswd -cbm /etc/svn-auth-accounts admin admin

centos7搭建jellyfin centos7搭建http_版本库_05


说明:

-c:创建一个加密文件;

-n:不更新加密文件,只将加密后的用户名密码显示在屏幕上;

-m:默认采用MD5算法对密码进行加密;

-d:采用CRYPT算法对密码进行加密;

-p:不对密码进行进行加密,即明文密码;

-s:采用SHA算法对密码进行加密;

-b:在命令行中一并输入用户名和密码而不是根据提示输入密码;

-D:删除指定的用户。

**注意:**如果创建第二个用户时,请勿使用“-c”选项,否则会重新生成文件并覆盖原文件;

四.删除用户

htpasswd -D /etc/svn-auth-accounts adrian

centos7搭建jellyfin centos7搭建http_centos_06


五.创建并配置SVN库(这里我只截一张效果图)

1.创建svn版本库根目录

mkdir /var/www/svn

2.进入根目录,创建版本库repo(库名自定义哈)
目录跳转

cd /var/www/svn

创建版本库

svnadmin create repo

3.修改版本库及该目录下的所属组和所属主

chown -R apache. repo/

4.查看

ll repo/

centos7搭建jellyfin centos7搭建http_版本库_07


六.启动httpd并加入开机启动

1.启动httpd

systemctl start httpd

2.加入开机启动

systemctl enable httpd

centos7搭建jellyfin centos7搭建http_版本库_08

七.测试

1.在浏览器输入:http://ip/svn/repo

centos7搭建jellyfin centos7搭建http_centos_09


2.输入之前创建的用户名和密码

centos7搭建jellyfin centos7搭建http_版本库_10


访问成功,现在没有文件夹和文件,下面随意创建几个文件在测试一下

3,随意新建2个文件并导入

mkdir /mnt/svnProject
touch /mnt/svnProject/file1;touch /mnt/svnProject/file2;

4.导入创建文件到svn

svn import -m "First SVN Repo"  /mnt/svnProject/  file:///var/www/svn/repo/svnProject

centos7搭建jellyfin centos7搭建http_svn_11


5.再次刷新页面

centos7搭建jellyfin centos7搭建http_svn_12


八.修改端口号(默认端口是80.如果有之前安装过nginx,端口会有冲突)

1.打开文件

vim /etc/httpd/conf/httpd.conf

centos7搭建jellyfin centos7搭建http_centos7搭建jellyfin_13

2.修改端口,Listen 80 ==> Listen 10。端口可以随意更改,看你的心情哟

centos7搭建jellyfin centos7搭建http_版本库_14


保存退出:Esc ⇒ : wq

3.重启httpd(可能会报错哟,如果不报错那当然好了)

systemctl restart httpd

centos7搭建jellyfin centos7搭建http_centos7搭建jellyfin_15


解释:上面的错是因为没有httpd没有添加10端口,所以启动不了

4.解决方法

1)先查看http开放了哪些端口

semanage port -l|grep http

centos7搭建jellyfin centos7搭建http_centos7搭建jellyfin_16


2)添加端口

semanage port -a -t http_port_t -p tcp 81

3)验证

semanage port -l|grep http

centos7搭建jellyfin centos7搭建http_centos7搭建jellyfin_17


5.再次重启(这次没有报错)

systemctl restart httpd

6.验证: 在浏览器输入http://ip:port/svn/repo

centos7搭建jellyfin centos7搭建http_版本库_18


九.配置权限

1.多创建两个svn账号

htpasswd -bm /etc/svn-auth-accounts test1 test1;
htpasswd -bm /etc/svn-auth-accounts test2 test2

centos7搭建jellyfin centos7搭建http_centos_19


2.在创建两个目录,并添加到svn中

mkdir /mnt/test1Project
mkdir /mnt/test2Project
svn import -m "First SVN Repo"  /mnt/test1Project/  file:///var/www/svn/repo/test1Project

centos7搭建jellyfin centos7搭建http_svn_20

svn import -m "First SVN Repo"  /mnt/test2Project/  file:///var/www/svn/repo/test2Project

centos7搭建jellyfin centos7搭建http_centos7搭建jellyfin_21

3.修改/etc/httpd/conf.d/subversion.conf文件添加权限配置
1)打开文件

vim /etc/httpd/conf.d/subversion.conf

centos7搭建jellyfin centos7搭建http_linux_22


2)添加配置

AuthzSVNAccessFile /etc/httpd/conf.d/authz

centos7搭建jellyfin centos7搭建http_centos_23


保存退出: Esc => :wq

4.在指定的目录下创建文件。刚刚配置的是/etc/httpd/conf.d目录下的authz文件
1)创建文件authz

vi /etc/httpd/conf.d/authz

centos7搭建jellyfin centos7搭建http_centos7搭建jellyfin_24


2)添加一下配置,如下。可以自己配置

#用户分组
[groups]
admin=admin

#访问权限配置r: 读; w:写
[/]
@admin = rw

[repo:/test1Project]
test1 = rw

[repo:/test2Project]
test2 = rw

centos7搭建jellyfin centos7搭建http_centos_25


配置说明:
[groups]

给用户分组,大多数情况下是一个版本库一个组

访问权限

r: 读; w:写

[repo:/test1Project]
test1 = rw

用户test1 只能对/repo/test1project目录进行读写,其他目录没有权限

5.重启httpd

systemctl restart httpd

6.验证。在浏览器输入http://ip:port/svn/repo

1)使用test1用户登录

centos7搭建jellyfin centos7搭建http_linux_26


2)结果(没有权限)

centos7搭建jellyfin centos7搭建http_centos7搭建jellyfin_27


3)访问http://ip:port/svn/repo/test1Project

centos7搭建jellyfin centos7搭建http_svn_28