欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

centos7.2基于SVN+Apache+IF.svnadmin实现SVN的web管理

程序员文章站 2022-06-11 16:26:27
...

centos7.2基于SVN+Apache+IF.svnadmin实现SVN的web管理

主体功能转载自:http://www.cnblogs.com/jackiega/p/8473085.html


介绍说明

  本文介绍的是CentOS7上搭建基于Apache、SVN Server、iF.svnadmin实现web后台可视化管理SVN。
  iF.SVNAdmin应用程序是Subversion授权文件基于Web的GUI。该应用程序不需要数据库后端,它完全基于Subversion授权和用户认证文件。

旧版卸载

  • 检查之前是否安装过svn服务,如有安装执行卸载命令
# rpm -e   subversion
  • 如果提示有依赖或者冲突,最好就不要卸载了。当然也可以强制卸载,在上面的命令后面加上参数: –nodeps 即可

软件准备

安装相关软件包
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

<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
 

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 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/www/svn"

通过如下命令来启用服务

# systemctl start httpd.service

如下命令使其开机自启动

# systemctl enable httpd.service

重启Apache

# systemctl restart httpd.service

启动webserver服务后,浏览器地址输入http://ip/svnadmin出现配置界面,输入下图中配置信息,输入每个配置信息可以点击旁边的Test测试是否输入正确,最后保存配置。

相关标签: svn服务器搭建