操作系統:Centos 6.3 X 64
Apache版本:2.4.9
SVN版本:1.8.9
1.定義apache訪問svn配置
在apache/conf/httpd.conf 中任意位置添加下面內容
<Location /svn>
DAV svn
SVNParentPath /home/svn (SVN服務器的根目錄路徑)
AuthType Basic
AuthName "Subversion repository"
AuthUserFile /home/svn/passwd.conf(SVN服務器的本地訪問控制文件路徑)
AuthzSVNAccessFile /home/svn/authz.conf(SVN服務器的項目控制文件路徑)
Require valid-user
</Location>
2.配置SVN服務器,主要內容包括創建SVN服務器的根目錄路徑以及生成上面所配置的用戶管理文件和訪問權限文件。
1)創建SVN服務器的根目錄。
mkdir -p /home/svn/
2)創建本地訪問控制文件,添加用戶admin的用戶名和密碼。
/home/apache/bin/htpasswd -c /home/svn/passwd.conf admin (第一次創建本地訪問控制文件時需要加
-c 參數,表示創建該文件,之後不再加該參數)
執行以上命令後需要用戶鍵入amdin的密碼,該密碼默認採用MD5加密
3)創建本地項目控制文件,添加訪問項目的用戶組、用戶以及訪問權限,因爲上面僅添加了admin用戶,所以這裏只添加amdin用戶組的訪問權限,內容如下:
vi /home/svn/authz.conf
[groups]
#<groupname1>=<username1>,<username2>
admin=admin (配置admin用戶組包含用戶admin)
#[<versionLib>:projectName/directory]
#@<groupsname>=<authorities>
#<username>=<authorities>
[/]
@admin = rw (指定admin用戶組成員可以讀寫根目錄所有應用)
3. 最後,測試SVN連接,其中首先創建一個代碼庫repos,然後通過瀏覽器訪問該代碼庫。
1)創建一個新的代碼庫repos。
svnadmin create /home/svn/repos
2)啓動Apache。
/home/apache/bin/apachectl start
3)在自己的客戶端機器的瀏覽器中訪問代碼庫。
http://*********/svn/repos
如果瀏覽器中出現 repos - Revision 0: / 說明配置成功了
我配的時候比較點背,出了幾個錯....
1.svn: Access to 'http://*************/svn/repos/Game2048' forbidden
這個很明顯,權限沒配好.....如果是用apache訪問svn,那新建代碼庫的時候生成的那一堆配置基本就沒啥用了
完全在自己建的 passwd.conf 和 authz.conf 裏配置
2.svn: Could not open the requested SVN filesystem
apache找不到svn根目錄,就是在apache的httpd.conf中配置的那個 SVNParentPath 出了問題,這個路徑寫代碼庫上一級目錄
3.svn: Can't open file '/home/svn/repos/db/txn-current-lock': Permission denied
這個是因爲我 svnadmin create 的時候是root身份...所以mod_dav_svn就沒有write權限
chown -R daemon /home/svn/repos/
chmod -R 755 /home/svn/repos/
這樣就解決了,ok,終於完事了.....