Centos7用http搭建SVN服務

http搭建SVN

一.安裝HTTP和SVN相關軟件包

yum install httpd subversion  mod_dav_svn  -y

在這裏插入圖片描述
等待安裝完成即可

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

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

在這裏插入圖片描述
2.添加以下命令,然後保存退出

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

在這裏插入圖片描述
配置說明:
<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

在這裏插入圖片描述
方法二: 用戶名和密碼一起創建

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

在這裏插入圖片描述
說明:
-c:創建一個加密文件;
-n:不更新加密文件,只將加密後的用戶名密碼顯示在屏幕上;
-m:默認採用MD5算法對密碼進行加密;
-d:採用CRYPT算法對密碼進行加密;
-p:不對密碼進行進行加密,即明文密碼;
-s:採用SHA算法對密碼進行加密;
-b:在命令行中一併輸入用戶名和密碼而不是根據提示輸入密碼;
-D:刪除指定的用戶。

**注意:**如果創建第二個用戶時,請勿使用“-c”選項,否則會重新生成文件並覆蓋原文件;

四.刪除用戶

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

在這裏插入圖片描述
五.創建並配置SVN庫(這裏我只截一張效果圖)
1.創建svn版本庫根目錄

mkdir /var/www/svn

2.進入根目錄,創建版本庫repo(庫名自定義哈)
目錄跳轉

cd /var/www/svn

創建版本庫

svnadmin create repo

3.修改版本庫及該目錄下的所屬組和所屬主

chown -R apache. repo/

4.查看

ll repo/

在這裏插入圖片描述
六.啓動httpd並加入開機啓動
1.啓動httpd

systemctl start httpd

2.加入開機啓動

systemctl enable httpd

在這裏插入圖片描述

七.測試
1.在瀏覽器輸入:http://ip/svn/repo
在這裏插入圖片描述
2.輸入之前創建的用戶名和密碼
在這裏插入圖片描述
訪問成功,現在沒有文件夾和文件,下面隨意創建幾個文件在測試一下

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

在這裏插入圖片描述
5.再次刷新頁面
在這裏插入圖片描述
八.修改端口號(默認端口是80.如果有之前安裝過nginx,端口會有衝突)
1.打開文件

vim /etc/httpd/conf/httpd.conf

在這裏插入圖片描述

2.修改端口,Listen 80 ==> Listen 10。端口可以隨意更改,看你的心情喲
在這裏插入圖片描述
保存退出:Esc ⇒ : wq
3.重啓httpd(可能會報錯喲,如果不報錯那當然好了)

systemctl restart httpd

在這裏插入圖片描述
解釋:上面的錯是因爲沒有httpd沒有添加10端口,所以啓動不了
4.解決方法
1)先查看http開放了哪些端口

semanage port -l|grep http

在這裏插入圖片描述
2)添加端口

semanage port -a -t http_port_t -p tcp 81

3)驗證

semanage port -l|grep http

在這裏插入圖片描述
5.再次重啓(這次沒有報錯)

systemctl restart httpd

6.驗證: 在瀏覽器輸入http://ip:port/svn/repo
在這裏插入圖片描述
九.配置權限
1.多創建兩個svn賬號

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

在這裏插入圖片描述
2.在創建兩個目錄,並添加到svn中

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

在這裏插入圖片描述

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

在這裏插入圖片描述

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

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

在這裏插入圖片描述
2)添加配置

AuthzSVNAccessFile /etc/httpd/conf.d/authz

在這裏插入圖片描述
保存退出: Esc => :wq

4.在指定的目錄下創建文件。剛剛配置的是/etc/httpd/conf.d目錄下的authz文件
1)創建文件authz

vi /etc/httpd/conf.d/authz

在這裏插入圖片描述
2)添加一下配置,如下。可以自己配置

#用戶分組
[groups]
admin=admin

#訪問權限配置r: 讀; w:寫
[/]
@admin = rw

[repo:/test1Project]
test1 = rw

[repo:/test2Project]
test2 = rw

在這裏插入圖片描述
配置說明:
[groups]

給用戶分組,大多數情況下是一個版本庫一個組
訪問權限
r: 讀; w:寫
[repo:/test1Project]
test1 = rw

用戶test1 只能對/repo/test1project目錄進行讀寫,其他目錄沒有權限

5.重啓httpd

systemctl restart httpd

6.驗證。在瀏覽器輸入http://ip:port/svn/repo
1)使用test1用戶登錄
在這裏插入圖片描述
2)結果(沒有權限)
在這裏插入圖片描述
3)訪問http://ip:port/svn/repo/test1Project
在這裏插入圖片描述
有不對的地方,希望留言,謝謝
結束

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章