一、介紹
本文介紹的是CentOS7上搭建基於Apache、SVN Server、iF.svnadmin實現web后台可視化管理SVN。
iF.SVNAdmin應用程序是Subversion授權文件基於Web的GUI。該應用程序不需要數據庫后端,它完全基於Subversion授權和用戶認證文件。
二、 軟件准備
安裝相關軟件包
1.安裝apache
# yum install httpd -y
2.安裝svn服務器(其中,mod_dav_svn是apache服務器訪問svn的一個模塊)
# yum install mod_dav_svn subversion -y
3.安裝完成后可以通過如下命令查看是否安裝成功
# httpd -version # svnserve --version # ls /etc/httpd/modules/ | grep svn
4.在apache下配置svn
# vi /etc/httpd/conf.d/subversion.conf LoadModule dav_svn_module modules/mod_dav_svn.so LoadModule authz_svn_module modules/mod_authz_svn.so <Location /svn> DAV svn SVNParentPath /var/www/svn #svn的根目錄 SSLRequireSSL #SSL訪問權限 AuthType Basic #Basic認證方式 AuthName "Authorization SVN" #認證時顯示的信息 AuthUserFile /var/www/svn/passwd #用戶文件&密碼 AuthzSVNAccessFile /var/www/svn/authz #訪問權限控制文件 Require valid-user #要求真實用戶,不能匿名 </Location>
5.Apache使用ssl模塊配置HTTPS
a、安裝OpenSSL
# yum install mod_ssl openssl
安裝完畢后,會自動生成 /etc/httpd/conf.d/ssl.conf 文件。
b、生成一個自簽名證書
下面的命令可以被用來產生一個自簽名的證書。
首先,生成2048位的加密私鑰
# openssl genrsa -out server.key 2048
然后,生成證書簽名請求(CSR),這里需要填寫許多信息,如國家,省市,公司等
# openssl req -new -key server.key -out server.csr
最后,生成類型為X509的自簽名證書。有效期設置3650天,即有效期為10年
# openssl x509 -req -days 3650 -in server.csr -signkey server.key -out server.crt
創建證書后,將文件復制到對應的目錄。
# cp server.crt /etc/pki/tls/certs/ # cp server.key /etc/pki/tls/private/ # cp server.csr /etc/pki/tls/private/
c、配置Apache Web服務器
首先,修改下面的配置文件。僅需配置SSLCertificateFile和SSLCertificateKeyFile
# vi /etc/httpd/conf.d/ssl.conf ### overwrite the following parameters ### SSLCertificateFile /etc/pki/tls/certs/server.crt SSLCertificateKeyFile /etc/pki/tls/private/server.key ### The following parameter does not need to be modified in case of a self-signed certificate. ### ### If you are using a real certificate, you may receive a certificate bundle. The bundle is added using the following parameters ### SSLCertificateChainFile /etc/pki/tls/certs/example.com.ca-bundle
然后,重新啟動httpd服務使更改生效。
三、建立SVN Server倉庫
通過如下命令建立svn倉庫,其中/var/www/svn是准備放倉庫的目錄,這個目錄可以放置多個代碼倉庫。
# mkdir /var/www/svn # svnadmin create /var/www/svn/test-project # ls /var/www/svn/test-project # chown -R apache.apache /var/www/svn
創建用戶文件passwd和權限控制文件authz
# touch /var/www/svn/passwd # touch /var/www/svn/authz # chmod -R 777 /var/www/svn/passwd # chmod -R 777 /var/www/svn/authz
四、配置安裝PHP&IF.SVNadmin
由於iF.SVNAdmin使用php寫的,因此我們需要安裝php
# yum install php -y
安裝配置if.svnadmin(http://sourceforge.net/projects/ifsvnadmin/files/svnadmin-1.6.2.zip/download)
# unzip svnadmin-1.6.2.zip # mv iF.SVNAdmin-stable-1.6.2/ /var/www/html/svnadmin # cd /var/www/html # chown -R apache.apache svnadmin # cd /var/www/html/svnadmin # chmod -R 777 data
五、啟動服務
如果開啟了防火牆, 需要開啟httpd訪問權限
# firewall-cmd --zone=public --add-port=80/tcp --permanent # firewall-cmd --reload
通過查看文件/usr/lib/systemd/system/svnserve.service, 了解到svnserver的配置文件是/etc/sysconfig/svnserve,修改/etc/sysconfig/svnserve
# vi /etc/sysconfig/svnserve OPTIONS="-r /var/svn"
通過如下命令來啟用服務
# systemctl start httpd.service
如下命令使其開機自啟動
# systemctl enable httpd.service
重啟Apache
# systemctl restart httpd.service
啟動webserver服務后,瀏覽器地址輸入http://ip/svnadmin出現配置界面,輸入下圖中配置信息,輸入每個配置信息可以點擊旁邊的Test測試是否輸入正確,最后保存配置。

配置完成會提示默認的賬戶為admin/admin。
六、iF.SVNAdmin使用
設置項目

設置用戶

設置權限

查看項目用戶

