主体功能转载自:http://www.cnblogs.com/jackiega/p/8473085.html
本文介绍的是CentOS7上搭建基于Apache、SVN Server、iF.svnadmin实现web后台可视化管理SVN。
iF.SVNAdmin应用程序是Subversion授权文件基于Web的GUI。该应用程序不需要数据库后端,它完全基于Subversion授权和用户认证文件。
# rpm -e 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
vim /etc/httpd/conf.d/subversion.conf
LoadModule dav_svn_module modules/mod_dav_svn.so
LoadModule authz_svn_module modules/mod_authz_svn.so
"">
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 #要求真实用户,不能匿名
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
vim /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
通过如下命令建立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
由于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/www/svn"
通过如下命令来启用服务
# systemctl start httpd.service
如下命令使其开机自启动
# systemctl enable httpd.service
重启Apache
# systemctl restart httpd.service
启动webserver服务后,浏览器地址输入http://ip/svnadmin出现配置界面,输入下图中配置信息,输入每个配置信息可以点击旁边的Test测试是否输入正确,最后保存配置。