SVN+APACH+TOMAT架构代码管控平台建置
2014-10-29 11:11
99 查看
环境:Linux Red HatEnterprise Linux Server release 6.3
IP:10.0.20
一、首先准备好相关的安装包
1.apr-1.3.8和apr-util-1.3.8
2.Apache :httpd-2.2.9.tar.gz
3.zlib-1.2.8.tar.gz
4.neon-0.29.6.tar.tar
5. expat-2.1.0-beta2.tar.gz缺少此SVN在make时候报:/usr/bin/ld:cannot
find lexpat错误
6.openssl-1.0.1c.tar.gz
7.Subversion:subversion-1.4.5.tar.gz和
subversion-deps-1.4.5.tar.gz
二、安装SVN及相关依赖工具
1、安装apr-1.2.12
# tar –zvxfapr-1.2.12.tar.gz
# cd apr-1.2.12
# ./configure /*安装不指定路径时默认安装到/usr/local/apr
# make
#make install
2、安装
apr-util-1.2.12
# tar –zvxfapr-util-1.2.12.tar.gz
# cdapr-util-1.2.12
# ./configure --with-apr=/usr/local/apr
# make ; makeinstall
3、安装
httpd-2.2.4.tar.gz
# tar –zvxfhttpd-2.2.4.tar.gz
# cd httpd-2.2.4
# ./configure --prefix=/usr/local/apache--with-apr=/usr/local/apr/bin/apr-1-config --with-apr-util=/usr/local/apr/bin/apu-1-config--enable-modules=so --enable-dav --enable-maintainer-mode
--enable-rewrite
# make ; makeinstall
安装好后启动apache
#/usr/local/apache/bin/apachectl –k start
用浏览器查看http://10.0.20/,得到it
works,说明apache已经配置成功了。
4.安装neon和openssl
#tar -xvfneon-0.29.6.tar.tar
#cd neon-0.29.6
# ./configure--prefix=/home/svn/apps/neon --with-ssl --with-libs=/home/svn/apps/ssl--enable-shared
#cd /svn
#tar -zxvfopenssl-1.0.1c.tar.gz
cdopenssl-1.0.1c/
./config--prefix=/home/svn/apps/ssl shared
make &&make install
5.安装expat
# tar -zxvfexpat-2.1.0-beta2.tar.gz
#cd expat-2012-03-06/
# ./configure
#make && make install
6、安装和配置
subversion
#tar –zvxf subversion-1.4.5.tar.gz
#tar –zvxfsubversion-deps-1.4.5.tar.gz /*这两个自动解压成一个包
subversion-1.4.5
#cdsubversion-1.4.5
#rm –rf apr
#rm -rf apr-util
# ./configure--prefix=/usr/local/svn --with-apxs=/usr/local/apache/bin/apxs--with-apr=/usr/local/apr/bin/apr-1-config--with-apr-util=/usr/local/apr/bin/apu-1-config--with-ssl=--with-ssl=/home/svn/apps/ssl
--with-zlib --enable-maintainer-mode--with-neon==/home/svn/apps/neon
#make
#make install
确定一下svn有没有安装成功
#/usr/local/svn/bin/svnserve- -version
在Apache的配置文件httpd.conf中加入如下配置
LoadModuledav_svn_module modules/mod_dav_svn.so
LoadModule authz_svn_module modules/mod_authz_svn.so
开始建立版本库
#/usr/local/svn/bin/svnadmincreate /svn/project/repro /*创建仓库"repro"
#ls/svn/project/repro /*查看有没有创建好,如果多了一些文件则说明版本库已经创建好
导入项目文件到版本库
下面这条语句将把路径/share/repro下找到的项目文件导入到你创建的/svn/project/repro仓库中去,
提交后的修订版为1
#/usr/local/svn/bin/svnimport /share/repro file:///svn/project/ repro -m “注释”
配置提高svn版本库的安全
#chmod –R 700/svn/project /*不让其他人有该目录的权限
注意:直接这么chmod会导致svn客户端无法访问,同时需要修改apache配置文件./conf/httpd.conf文件,(如果你的水平不够高的话,这一步可以先跳过,以免给自己找麻烦!等把服务完全搞定后再来进一步提高安全性)在httpd.conf文件中有这么一段内容:
User daemon
Group daemon
把上述内容改成:
User apache
Group apache
(我的系统在安装apache的时候,自动增加了apache用户和apache组,如果你系统没有这个用户和组,则请自己添加该用户和组方法是:1.
#groupadd apache 2. #useradd -g apache apache )
修改svn仓库的所有者
#chown -R apache:apache /svn/project
7、配置apache支持svn
#vi/usr/local/apache/conf/httpd.conf
在文件末尾添加
<Location /svn>
DAV svn
SVNParentPath/svn/project/ //此处配置你的版本库根目录,即仓库repro的上一级目录
AuthType Basic //连接类型设置基本验证
AuthName"Hello welcome to here"//登录框标题
AuthzSVNAccessFile/svn/project/repro/conf/svnserve.conf//此处修改为访问版本库权限的文件
AuthUserFile /svn/project/repro/conf/authfile//此处为访问版本库用户的文件,touch命令手动生成
Requirevalid-user//"Require
valid-user"告诉apache在authfile中所有的用户都可以访问。如果没有它,则只能第一个用户可以访问新建库
</Location>
保存文件退出!
重新启动apache
#/usr/local/apache/bin/apachectl –k restart
先使用浏览器检测一下
打开浏览器访问http://192.168.0.1/svn/repro会提示输入用户名密码
等到完成下面步骤就可以进去访问了,进去后如果有东西显示就说明成功。
下面就是对svn的用户和权限配置管理
8、配置svn权限管理(即svnserve.conf的配置)
1).添加用户
#/usr/local/apache/bin/htpasswd –c /svn/project/repro/conf/authfile user01
第一次设置用户时使用-c表示新建一个用户文件。回车后输入用户密码,完成对用户的增加
第二次添加用户不需要带 –c参数如:
#/usr/local/apache/bin/htpasswd /svn/project/repro/conf/authfile user02
2) .
权限分配:
#vi /svn/project/conf/svnserve.conf
[groups] /*这个表示群组设置
Admin=usr1,user2/*这个表示admin群组里的成员
user1,user2
Develop=u1, u2/*这个表示Develop群组里的成员
u1,u2
[www:/] /*这表示,仓库www的根目录下的访问权限
user1 = rw /*www仓库user1用户具有读和写权限
user2 = r /* www仓库userl用户具只有读权限
@develop=rw /*这表示群
develop的成员都具有读写权限
[/] /*这个表示在所有仓库的根目录下
* = r /*这个表示对所有的用户都具有读权限
注意:在编辑authz.conf文件时,所有行都必须要顶头写,不能有缩行出现,否则会报错:"Access
denied: 'user1' ",里面的内容可以根据自己的需要自行添加,不必与我上面所写的相同!
9、重启apache服务和启动svn服务
#/usr/local/apache/bin/apachectl–k restart
就可以通过 http://10.0.0.20/svn/repro这个URL来访问仓库了,当然,受权限的限制,必须是合法用户才能访问且具有相应的权限
登录测试遇到的问题:
用用户名和密码登录会报错:InternalServer Error
The server encountered an internal error or misconfigurationand was unable to complete your request.
Please contact the server administrator
处理方法:查看apache日志发现报错信息:(13)Permission
denied: Could not open password file:/svn/project/repro/conf/authfile,说明此文件的权限不够,chmod 777 /svn/project问题解决
最后启动svn
#/usr/local/svn/bin/svnserve-d -r /svn/project
-d表示以
daemon方式(后台运行)运行
-r /svn/project指定根目录是/svn/project
检查服务器是否启动正常:
#ps –ef|grepsvnserve
如果显示如下,即为启动成功:
Root
6941 1 0
15:07 ? 00:00:00 svnserve -d ——listen-port 9999-r /svn
三、设定SVN版本库自动备份-
1.建立版本库备份文件存放目录
# mkdir –p/home/backup1/svn
2.在/svn目录下创建一个可执行文件并编写shell脚本backup.sh
#touch backup.sh
#chmod 755backup.sh
#vim backup.sh
脚本:#!/bin/bash
cd/home/backup1/svn/
mkdir `date +%F`
chmod 755 `date+%F`
cd `date +%F`
ls -l/svn/project/ | awk '$1~"d"{print$9}' > list
for i in `catlist`
do
mkdir/home/backup1/svn/`date +%F`/$i
done
SRCPATH=/svn/project/;
DISTPATH=/home/backup1/svn/`date+%F`
echo $DISTPATH
cat$DISTPATH/list | while read filename
do
svnadmin hotcopy$SRCPATH/$filename $DISTPATH/$filename
done
chownwww-data.www-data $DISTPATH –R
设定每天凌晨2点自动备份/svn/project/下所有的版本库
#crontab –e
加入如下脚本:0 2 * * * /svn/backup.sh保存退出
四、建立SVN WEB平台
下载svnwebclient.war
配置环境变量:
vi/etc/profile
JAVA_HOME=/jdk1.8.0_25
PATH=$JAVA_HOME/bin:$PATH
CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
exportJAVA_HOME
exportPATH
exportCLASSPATH
执行source /etc/profile让上述配置生效
下载JDK jdk-8u25-linux-x64.tar.gz、以及tomcat安装并搭建tomcat环境部署svnwebclient.war部署后修改webapps/svnwebclient/WEB-INF/web.xml中的配置(红色部分根据实际情况修改即可):
<context-param>
<param-name>RepositoryUrl</param-name>
<param-value>http://10.0.0.20/svn/repro</param-value>
</context-param>
<!--
Username
Values: Valid UserName
Example: usename
-->
<context-param>
<param-name>Username</param-name>
<param-value>user01</param-value>
</context-param>
<!--
Password
Values: valid password
Example: pass
-->
<context-param>
<param-name>Password</param-name>
<param-value>1</param-value>
</context-param>
http://10.0.0.20:8080/svnwebclient/登录访问SVN
WEB页面
至此APACHE+TOMCAT+SVN架构模式的代码管控平台搭建完成
环境:Linux Red HatEnterprise Linux Server release 6.3
IP:10.0.20
一、首先准备好相关的安装包
1.apr-1.3.8和apr-util-1.3.8
2.Apache :httpd-2.2.9.tar.gz
3.zlib-1.2.8.tar.gz
4.neon-0.29.6.tar.tar
5. expat-2.1.0-beta2.tar.gz缺少此SVN在make时候报:/usr/bin/ld:cannot
find lexpat错误
6.openssl-1.0.1c.tar.gz
7.Subversion:subversion-1.4.5.tar.gz和
subversion-deps-1.4.5.tar.gz
二、安装SVN及相关依赖工具
1、安装apr-1.2.12
# tar –zvxfapr-1.2.12.tar.gz
# cd apr-1.2.12
# ./configure /*安装不指定路径时默认安装到/usr/local/apr
# make
#make install
2、安装
apr-util-1.2.12
# tar –zvxfapr-util-1.2.12.tar.gz
# cdapr-util-1.2.12
# ./configure --with-apr=/usr/local/apr
# make ; makeinstall
3、安装
httpd-2.2.4.tar.gz
# tar –zvxfhttpd-2.2.4.tar.gz
# cd httpd-2.2.4
# ./configure --prefix=/usr/local/apache--with-apr=/usr/local/apr/bin/apr-1-config --with-apr-util=/usr/local/apr/bin/apu-1-config--enable-modules=so --enable-dav --enable-maintainer-mode
--enable-rewrite
# make ; makeinstall
安装好后启动apache
#/usr/local/apache/bin/apachectl –k start
用浏览器查看http://10.0.20/,得到it
works,说明apache已经配置成功了。
4.安装neon和openssl
#tar -xvfneon-0.29.6.tar.tar
#cd neon-0.29.6
# ./configure--prefix=/home/svn/apps/neon --with-ssl --with-libs=/home/svn/apps/ssl--enable-shared
#cd /svn
#tar -zxvfopenssl-1.0.1c.tar.gz
cdopenssl-1.0.1c/
./config--prefix=/home/svn/apps/ssl shared
make &&make install
5.安装expat
# tar -zxvfexpat-2.1.0-beta2.tar.gz
#cd expat-2012-03-06/
# ./configure
#make && make install
6、安装和配置
subversion
#tar –zvxf subversion-1.4.5.tar.gz
#tar –zvxfsubversion-deps-1.4.5.tar.gz /*这两个自动解压成一个包
subversion-1.4.5
#cdsubversion-1.4.5
#rm –rf apr
#rm -rf apr-util
# ./configure--prefix=/usr/local/svn --with-apxs=/usr/local/apache/bin/apxs--with-apr=/usr/local/apr/bin/apr-1-config--with-apr-util=/usr/local/apr/bin/apu-1-config--with-ssl=--with-ssl=/home/svn/apps/ssl
--with-zlib --enable-maintainer-mode--with-neon==/home/svn/apps/neon
#make
#make install
确定一下svn有没有安装成功
#/usr/local/svn/bin/svnserve- -version
在Apache的配置文件httpd.conf中加入如下配置
LoadModuledav_svn_module modules/mod_dav_svn.so
LoadModule authz_svn_module modules/mod_authz_svn.so
开始建立版本库
#/usr/local/svn/bin/svnadmincreate /svn/project/repro /*创建仓库"repro"
#ls/svn/project/repro /*查看有没有创建好,如果多了一些文件则说明版本库已经创建好
导入项目文件到版本库
下面这条语句将把路径/share/repro下找到的项目文件导入到你创建的/svn/project/repro仓库中去,
提交后的修订版为1
#/usr/local/svn/bin/svnimport /share/repro file:///svn/project/ repro -m “注释”
配置提高svn版本库的安全
#chmod –R 700/svn/project /*不让其他人有该目录的权限
注意:直接这么chmod会导致svn客户端无法访问,同时需要修改apache配置文件./conf/httpd.conf文件,(如果你的水平不够高的话,这一步可以先跳过,以免给自己找麻烦!等把服务完全搞定后再来进一步提高安全性)在httpd.conf文件中有这么一段内容:
User daemon
Group daemon
把上述内容改成:
User apache
Group apache
(我的系统在安装apache的时候,自动增加了apache用户和apache组,如果你系统没有这个用户和组,则请自己添加该用户和组方法是:1.
#groupadd apache 2. #useradd -g apache apache )
修改svn仓库的所有者
#chown -R apache:apache /svn/project
7、配置apache支持svn
#vi/usr/local/apache/conf/httpd.conf
在文件末尾添加
<Location /svn>
DAV svn
SVNParentPath/svn/project/ //此处配置你的版本库根目录,即仓库repro的上一级目录
AuthType Basic //连接类型设置基本验证
AuthName"Hello welcome to here"//登录框标题
AuthzSVNAccessFile/svn/project/repro/conf/svnserve.conf//此处修改为访问版本库权限的文件
AuthUserFile /svn/project/repro/conf/authfile//此处为访问版本库用户的文件,touch命令手动生成
Requirevalid-user//"Require
valid-user"告诉apache在authfile中所有的用户都可以访问。如果没有它,则只能第一个用户可以访问新建库
</Location>
保存文件退出!
重新启动apache
#/usr/local/apache/bin/apachectl –k restart
先使用浏览器检测一下
打开浏览器访问http://192.168.0.1/svn/repro会提示输入用户名密码
等到完成下面步骤就可以进去访问了,进去后如果有东西显示就说明成功。
下面就是对svn的用户和权限配置管理
8、配置svn权限管理(即svnserve.conf的配置)
1).添加用户
#/usr/local/apache/bin/htpasswd –c /svn/project/repro/conf/authfile user01
第一次设置用户时使用-c表示新建一个用户文件。回车后输入用户密码,完成对用户的增加
第二次添加用户不需要带 –c参数如:
#/usr/local/apache/bin/htpasswd /svn/project/repro/conf/authfile user02
2) .
权限分配:
#vi /svn/project/conf/svnserve.conf
[groups] /*这个表示群组设置
Admin=usr1,user2/*这个表示admin群组里的成员
user1,user2
Develop=u1, u2/*这个表示Develop群组里的成员
u1,u2
[www:/] /*这表示,仓库www的根目录下的访问权限
user1 = rw /*www仓库user1用户具有读和写权限
user2 = r /* www仓库userl用户具只有读权限
@develop=rw /*这表示群
develop的成员都具有读写权限
[/] /*这个表示在所有仓库的根目录下
* = r /*这个表示对所有的用户都具有读权限
注意:在编辑authz.conf文件时,所有行都必须要顶头写,不能有缩行出现,否则会报错:"Access
denied: 'user1' ",里面的内容可以根据自己的需要自行添加,不必与我上面所写的相同!
9、重启apache服务和启动svn服务
#/usr/local/apache/bin/apachectl–k restart
就可以通过 http://10.0.0.20/svn/repro这个URL来访问仓库了,当然,受权限的限制,必须是合法用户才能访问且具有相应的权限
登录测试遇到的问题:
用用户名和密码登录会报错:InternalServer Error
The server encountered an internal error or misconfigurationand was unable to complete your request.
Please contact the server administrator
处理方法:查看apache日志发现报错信息:(13)Permission
denied: Could not open password file:/svn/project/repro/conf/authfile,说明此文件的权限不够,chmod 777 /svn/project问题解决
最后启动svn
#/usr/local/svn/bin/svnserve-d -r /svn/project
-d表示以
daemon方式(后台运行)运行
-r /svn/project指定根目录是/svn/project
检查服务器是否启动正常:
#ps –ef|grepsvnserve
如果显示如下,即为启动成功:
Root
6941 1 0
15:07 ? 00:00:00 svnserve -d ——listen-port 9999-r /svn
三、设定SVN版本库自动备份-
1.建立版本库备份文件存放目录
# mkdir –p/home/backup1/svn
2.在/svn目录下创建一个可执行文件并编写shell脚本backup.sh
#touch backup.sh
#chmod 755backup.sh
#vim backup.sh
脚本:#!/bin/bash
cd/home/backup1/svn/
mkdir `date +%F`
chmod 755 `date+%F`
cd `date +%F`
ls -l/svn/project/ | awk '$1~"d"{print$9}' > list
for i in `catlist`
do
mkdir/home/backup1/svn/`date +%F`/$i
done
SRCPATH=/svn/project/;
DISTPATH=/home/backup1/svn/`date+%F`
echo $DISTPATH
cat$DISTPATH/list | while read filename
do
svnadmin hotcopy$SRCPATH/$filename $DISTPATH/$filename
done
chownwww-data.www-data $DISTPATH –R
设定每天凌晨2点自动备份/svn/project/下所有的版本库
#crontab –e
加入如下脚本:0 2 * * * /svn/backup.sh保存退出
四、建立SVN WEB平台
下载svnwebclient.war
配置环境变量:
vi/etc/profile
JAVA_HOME=/jdk1.8.0_25
PATH=$JAVA_HOME/bin:$PATH
CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
exportJAVA_HOME
exportPATH
exportCLASSPATH
执行source /etc/profile让上述配置生效
下载JDK jdk-8u25-linux-x64.tar.gz、以及tomcat安装并搭建tomcat环境部署svnwebclient.war部署后修改webapps/svnwebclient/WEB-INF/web.xml中的配置(红色部分根据实际情况修改即可):
<context-param>
<param-name>RepositoryUrl</param-name>
<param-value>http://10.0.0.20/svn/repro</param-value>
</context-param>
<!--
Username
Values: Valid UserName
Example: usename
-->
<context-param>
<param-name>Username</param-name>
<param-value>user01</param-value>
</context-param>
<!--
Password
Values: valid password
Example: pass
-->
<context-param>
<param-name>Password</param-name>
<param-value>1</param-value>
</context-param>
http://10.0.0.20:8080/svnwebclient/登录访问SVN
WEB页面
至此APACHE+TOMCAT+SVN架构模式的代码管控平台搭建完成
相关文章推荐
- B\S架构快速开发平台如何用代码实现登陆
- ubuntu下使用svn管理sina 云平台的代码
- Linux 3.14的设备树-ARM架构-4412平台,最详细的实战开发代码(三)
- 代码管理平台——svn、git、github、gitlab
- 【.Net架构】BIM软件架构03:Web管控平台MVC架构
- svn 代码管理平台的搭建
- svn,git及代码托管平台
- svn 与 git 和 github等代码托管平台
- 通用数据采集平台,从架构到代码
- Linux 3.14的设备树-ARM架构-4412平台,最详细的实战开发代码(一)
- Jenkins 持续集成平台构建之通过svn提交代码
- Linux 3.14的设备树-ARM架构-4412平台,最详细的实战开发代码(二)
- Eclipse玩家代码版本管控SVN工具Subclipse的安装与使用
- 持续集成代码管理平台svn版本库控制(二)
- 代码发布架构方案(SVN)
- Apache+SVN构建代码仓库平台
- 【.NET架构】BIM软件架构02:Web管控平台后台架构
- 分布式架构学习之持续集成:011--SonarQube代码质量管理平台的安装、配置和使用
- sonar + gitlab 搭建代码质量管控平台
- 通用数据采集平台,从架构到代码