1. 程式人生 > >Apache搭建SVN的一些說明

Apache搭建SVN的一些說明

apache svn

本文運行的環境是64位CentOS7


直接安裝Apache和Subversion

yum -y install httpd

yum -y install subverion

如果/usr/lib64/httpd/modules下面沒有mod_dav_svn.so和mod_authz_svn.so需要進行安裝

yum -y install mod_dav_svn

配置Apache:/etc/httpd/conf/httpd.conf

# 監聽端口

Listen 80

其他配置請參考Apache相關說明


在/etc/httpd/conf.d下創建subversion.conf (註:名字不重要.conf),內容如下:

LoadModule dav_svn_module     modules/mod_dav_svn.so
LoadModule authz_svn_module   modules/mod_authz_svn.so

<Location /svn>
  DAV svn
  SVNParentPath "/opt/svn/"
# SVNPath /opt/svn/repos/
  AuthType Basic
  AuthName "SVN Repo"
  AuthUserFile "/opt/svn/htpasswd"
  AuthzSVNAccessFile "/opt/svn/authz"
  Require valid-user
</Location>
LoadModule dav_svn_module     modules/mod_dav_svn.so
LoadModule authz_svn_module   modules/mod_authz_svn.so

<Location /svn>
  DAV svn
  SVNParentPath "/opt/svn/"
# SVNPath /opt/svn/repos/
  AuthType Basic
  AuthName "SVN Repo"
  AuthUserFile "/opt/svn/htpasswd"
  AuthzSVNAccessFile "/opt/svn/authz"
  Require valid-user
</Location>

其中Location /svn 為訪問路徑,如果寫成Location / 將覆蓋Apache默認首頁

SVNParentPath可以設置多個版本庫的父目錄,可以同時訪問多個版本庫。例如在/opt/svn下有兩個版本庫分別為dev和release那麽就可以通過URL:<URL>/svn/dev和<URL>/svn/release分別訪問

也可以單獨設置SVNPath到具體的一個版本庫,那<URL>/svn就訪問指定的這個版本庫

在/opt/svn下創建2個文件分別為:htpasswd和authz

其中authz可以從版本庫中的conf目錄下復制出來,具體的配置跟SVN原生配置相同就不再多做說明

單獨說一下用戶文件htpasswd,具體命令可以查詢htpasswd命令的用法,這裏只介紹幾個用到的語句

htpasswd -c htpasswd user1

創建一個用戶文件並添件用戶user1

第一個htpasswd是命令,第二個是文件名,可以使用別的名字,當然配置文件裏也要設置成對應的文件名

htpasswd htpasswd user2

添加用戶user2

添加兩個用戶都需要在單獨行輸入密碼兩次進行確認,也可以一行命令執行

htpasswd -b htpasswd user3 123456

刪除用戶

htpasswd -D htpasswd user3


創建版本庫

svnadmin create repos

創建了以後通過<URL>/svn/repos訪問

這時候有可能出現db/txn-current-lock: Permission denied

執行

setsebool -P httpd_unified=1
chcon -R -t httpd_sys_content_rw_t /opt/svn/repos

其中第一行只需要執行一次,第二行需要在每個版本庫執行,具體代碼的作用請查詢SELinux

這時候重新訪問有可能出現Could not open the requested SVN filesystem

執行

chmod -R 755 /opt/svn/repos

再訪問就沒有問題了

如果要批量創建版本庫,寫個小腳本處理

if [ "$1" = "" ];
  then echo ‘please input repo name‘
else
  svnadmin create $1
  chcon -R -t httpd_sys_content_rw_t $1
  chmod -R 755 $1
  chown -R apache $1
fi


本文出自 “MMX的沙羅雙樹園” 博客,請務必保留此出處http://ohmmx.blog.51cto.com/12884864/1924660

Apache搭建SVN的一些說明