Centos 7下部署svn后,添加倉庫、分配權限、創建賬號等都需要登錄服務器操作,人員較多時不太方便。
svnadmin可以實現web后台方式可視化管理svn。
svn可視化管理svnadmin,有基於php的IF.svnadmin和基於java的jsvnadmin兩款。
本篇記錄一下php寫的if.svnadmin,另一篇記錄java寫的jsvnadmin。
iF.SVNAdmin
iF.SVNAdmin應用程序是您的Subversion授權文件的基於Web的GUI。它基於PHP 5.3,需要安裝一個Web服務器(Apache)。該應用程序不需要數據庫后端或任何類似的,它完全基於Subversion授權和用戶認證文件。(+包含用戶和組的LDAP支持)
一,安裝軟件
安裝過程如下: 1.安裝apache [root@localhost ~]# yum install httpd -y 2.安裝svn服務器(其中,mod_dav_svn是apache服務器訪問svn的一個模塊) [root@localhost ~]# yum install mod_dav_svn subversion -y 3.安裝完成后可以通過如下命令查看是否安裝成功 [root@localhost ~]# httpd -version [root@localhost ~]# svnserve --version [root@localhost ~]# ls /etc/httpd/modules/ | grep svn mod_authz_svn.so mod_dav_svn.so 3.在apache下配置svn [root@localhost ~]# vim /etc/httpd/conf.d/subversion.conf <Location /svn/> DAV svn SVNParentPath /var/www/svn AuthType Basic AuthName "Authorization SVN" AuthUserFile /var/www/svn/passwd AuthzSVNAccessFile /var/www/svn/authz Require valid-user </Location> RedirectMatch ^(/svn)$ $1/ 4. yum安裝php [root@localhost ~]# yum install php -y 5,下載if.svnadmin #此處需翻牆 wget http://sourceforge.net/projects/ifsvnadmin/files/svnadmin-1.6.2.zip/download [root@localhost tools]# ls svnadmin-1.6.2.zip svnadmin-1.6.2.zip #unzip解開后 mv到/var/www/html/ 改名為svnadmin cd /var/www/html chown -R apache.apache svnadmin #網上大部分需授權svnadmin/data目錄權限為777,經測默認即可。 [root@localhost html]# cd /var/www/html/ [root@localhost html]# ll total 4 drwxr-xr-x 9 apache apache 4096 Aug 29 2013 svnadmin
二,創建svn倉庫
[root@localhost ~]# mkdir /var/www/svn [root@localhost ~]# svnadmin create /var/www/svn/sungeek [root@localhost ~]# ls /var/www/svn/sungeek ---> conf db format hooks locks README.txt [root@localhost ~]# chown -R apache.apache /var/www/svn 創建用戶文件passwd和權限控制文件authz [root@localhost ~]# touch /var/www/svn/passwd [root@localhost ~]# touch /var/www/svn/authz
通過查看文件/usr/lib/systemd/system/svnserve.service, 了解到svnserver的配置文件是/etc/sysconfig/svnserve
修改/etc/sysconfig/svnserve
[root@localhost html]# cat /etc/sysconfig/svnserve
# OPTIONS is used to pass command-line arguments to svnserve.
#
# Specify the repository location in -r parameter:
#OPTIONS="-r /var/svn"
OPTIONS="-r /var/www/svn"
#如果不使用svn://ip/xxx方式請求,測出svn無需啟動。(貌似也沒啥用)
三,啟動服務
#啟動apache [root@localhost ~]# systemctl start httpd.service #添加開機自啟服務 [root@localhost ~]# systemctl enable httpd.service
四,訪問
啟動webserver服務后,瀏覽器地址輸入http://ip/svnadmin出現配置界面,輸入下圖中配置信息,輸入每個配置信息可以點擊旁邊的Test測試是否輸入正確,最后保存配置
常見問題:
1,創建了代碼倉庫后,配置訪問路徑時不顯示倉庫問題?
處理辦法:起初出現這種情況時,我創建了BCD;CDE倉庫,重啟apache、退出重新登錄都不好使,最好只好刪除/var/www/html/ 目錄下的 svnadmin目錄,然后重新將svnadmin壓縮包解壓至此,刷新即可。
但,在嘗試了數次之后,總覺得這辦法不靠譜,直到最后解壓開svnadmin壓縮包后,不對svnadmin/data目錄進行777的授權,權限太大不好。結果就順便解決了上面創建倉庫無法在訪問路徑下顯示的問題了。
2,創建代碼倉庫后,另一種情況是如果訪問路徑不顯示時,需要點擊創建的倉庫名前的五角星,然后新建即可。
3,創建了父目錄后,無法創建子目錄或多個子目錄?
解決辦法:在創建了父目錄test1后,還想在test1下創建一個子目錄和多個子目錄時,svnadmin就不能使用了,直接在test1目錄下提交多個子目錄,然后再登錄web端就可以查看到下面的子目錄了。