1. 程式人生 > >Centos7 64bit Linux系統安裝SVN 和 http訪問配置

Centos7 64bit Linux系統安裝SVN 和 http訪問配置

  • 第一步,更新源,並通過yum下載安裝svn
[[email protected] ~]# yum update
[[email protected] ~]# yum -y install subversion

安裝過程中,全部選擇同意(y)即可。
安裝完成會提示complete!

  • 安裝httpd
[[email protected] ~]# yum -y install httpd
  • 建立SVN倉庫
# 可以任意指定你喜歡的目錄
[[email protected] ~]# mkdir -p /home/svn/repos1 #倉庫1 
[
[email protected]
~]# mkdir -p /home/svn/repos2 #倉庫2 # … # 這裡可以繼續建立任意多的倉庫
  • 指定svn版本庫
# 對每個倉庫執行這個命令
[[email protected] ~]# svnadmin create /home/svn/repos1
[[email protected] ~]# svnadmin create /home/svn/repos2
  • 修改SVN版本庫配置檔案
[[email protected] ~]# vi /home/svn/repos1/conf/svnserve.conf

內容修改為:

anon-access = none
auth-access = write
password-db = /home/svn/conf/pwd.conf    #指向使用者配置檔案
authz-db = /home/svn/conf/authz.conf     #指向許可權配置檔案
realm = /home/svn/repos1                           #指向svn倉庫地址

其他倉庫也按照這個配置一遍。realm欄位指向被配置的倉庫路徑

  • 新建許可權檔案
    首先新建配置檔案
[[email protected] ~]# vi /home/svn/conf/pwd.conf
[
[email protected]
~]# vi /home/svn/conf/authz.conf

我用的是vi新建配置檔案,當然你也可以用別的方式新建
進入編輯器後輸入 :wq 儲存退出

  • 增加SVN使用者
    增加一個svn使用者。第一個使用者需要加 -c 。後面的使用者不需要加
[[email protected] ~]# htpasswd -c /home/svn/conf/pwd.conf admin

如果加的話會把之前新增的使用者覆蓋掉
然後根據提示輸入密碼
增加完使用者之後在pwd.conf檔案上面增加[users]標籤

[roo[email protected] ~]# vi /home/svn/conf/pwd.conf

因為用htpasswd方式加使用者會覆蓋掉[users],所以每次加完使用者需要回去補一下該節點。

  • 許可權配置
[[email protected] ~]# vim /home/svn/conf/authz.conf

檔案內容如下:

[groups]
admin=user1,user2
test=user3
[/]
@admin=rw
[repos1:/]
user3=r

解釋:[groups]為組定義,可以在該組下加很多使用者,以,分割,
但是該使用者資料必須在/homd/svn/conf/pwd.conf中定義好,
[/]表示根目錄以下的許可權定義
[repos1:/] 表示倉庫下的許可權定義
如果要分專案,則以此規則類推:
如:[repos1:/aaa] 則表示倉庫下的aaa專案的許可權定義。
@admin 表示admin這個組下的使用者許可權。
user1=r 表示user1這個使用者的許可權。
許可權型別:r,w,rw 分別表示只讀,只寫,讀寫。如果是user1= 這種空情況則表示沒有。
OK,到此svn配置完成。我們可以把預設的配置檔案刪除。

[[email protected] ~]# rm -rf /home/svn/repos1/conf/passwd
[[email protected] ~]# rm -rf /home/svn/repos2/conf/authz

如果有多個倉庫,那就逐個刪除即可。

  • 建立啟動svn的使用者
[[email protected] ~]# useradd svn                    #如果提示svn賬戶已存在,則執行以下命令
[[email protected] ~]# passwd svn                     ##根據提示修改下密碼,不能過於簡單,可使用常用密碼
[[email protected] ~]# chown -R svn:svn /home/svn/    ##允許使用者svn訪問版本庫
[[email protected] ~]# chmod –R o+rw /home/svn        ##解決windows檢出提交提示/home/svn/db/txn-current-lock’錯誤
  • 配置svn的埠
[[email protected] ~]# vi /etc/httpd/conf/httpd.conf

找到
Listen 12.34.56.78:80這一行,
Listen 9999 ##9999就是svn的埠,預設是80,
你可以修改成你自己想要的。不建議使用預設80埠

  • 配置httpd
[[email protected] ~]# vi /etc/httpd/conf.d/subversion.conf

修改檔案內容為:

<Location /svn>
    DAV svn
    SVNListParentPath on
    SVNParentPath /home/svn
    AuthType Basic
    AuthName "Authorization"
    AuthUserFile /home/svn/conf/pwd.conf                    ##對應你的使用者配置檔案
    AuthzSVNAccessFile /home/svn/conf/authz.conf      ##對應你的許可權配置檔案
    Require valid-user
</Location>

儲存退出!
重啟httpd服務。

[[email protected] ~]# service httpd restart
停止 httpd:                                               [確定]
正在啟動 httpd:                                           [確定]

出現以上字樣,表名httpd的配置已經成功啟動成功。

  • 啟動svn
[[email protected] ~]# svnserve -d -r /home/svn/
  • 檢視svn服務是否正常
[[email protected] ~]# ps aux|grep svn

出現以下內容說明svn服務已經成功啟動

root    8610  0.0  0.0 152864   740 ?        Ss   11:25   0:00 svnserve -d -r /home/svn/repos1/
root    13128  0.0  0.0 103252   876 pts/0    S+   14:00   0:00 grep svn
  • 進入瀏覽器訪問。

在瀏覽器中輸入:伺服器Ip+埠+httpd配置中的

總結

參考地址:
https://www.server110.com/linux/201511/11517.html