一步一步搭建Svn+Apache环境(附源码包)
2015-06-20 21:49
513 查看
一步一步搭建Svn+Apache环境(附源码包) 看了很多网上的搭建方法,但是因为配置的svn和Apache的版本问题和网上写的教程的不完整等原因,阻碍了很多想要学习的朋友!!今天亲手搭建了一下Svn+Apache环境,并且详细记录了每一步搭建的细节,送给需要的朋友们! 软件版本:
redhat6.4(64位) apr-1.5.1.tar.gz apr-util-1.5.3.tar.gz httpd-2.2.27.tar.gz sqlite-amalgamation-3.6.17.tar.gz sqlite-amalgamation-3071501.zip subversion-1.8.10.tar.gz TortoiseSVN_1.8.6.25419_x64_XiaZaiBa.zip(windows客户端)
点击 下载所有源码包(免费下载,送给需要的朋友们)
SVN介绍
SVN是一个版本控制工具,Subversion的版本库(repository),就是位于服务器,统一管理和储存数据的地方。
题外话,搭建SVN服务器apache是必须的吗?
Subversion(SVN)作为一个单独的版本管理软件是不具备网页浏览功能的。就是说,你可以用版本管理的客户端比如:TotoriseSVN来和
SVN服务器进行连接。这样如果你的电脑没有安装SVN客户端就不能使用SVN服务器提供的服务了。为了实现请客户端的目标,就想通过网页来进行访问浏
览。所以就将网页浏览的功能通过Apache服务器来实现。而通过Apache的插件来和SVN进行连接后,用户可以通过浏览
器:IE,Firefox,NetScape等,访问SVN服务器。这样很方便了。现在有不少的SVN服务器软件直接提供网页功能,而且支持图形界面。我
个人使用的是VisualSVN,感觉不错,很容易管理,图形化的界面。你可以尝试下,至于SVN客户端你可以用TotoriseSVN。
NetBeans,Eclipse等开发IDE都内置了SVN插件,很容易用的。
SVN数据存储方式
在Subversion中,版本库的数据存储有两种方式:一种是在Berkeley DB数据库中存放数据;另一种是普通文件,采用自定义的格式来存储,称为FSFS。
SVN搭建
1、关闭iptables、selinux
3、修改/etc/hosts
4.1安装apache
![](http://s3.51cto.com/wyfs02/M02/5A/29/wKioL1T4IM_S-1iYAAGzJKhXGsU065.jpg)
4.3 安装sqlite
4.4 安装svn
configure时遇到错误:
get the sqlite 3.7.15.1amalgamation from: http://www.sqlite.org/sqlite-amalgamation-3071501.zip unpack the archive usingunzip and rename the resulting
directory to:
/app/soft/subversion-1.8.10/sqlite-amalgamation
configure: error:Subversion requires SQLite
解决办法:
如果服务器不能联网,下载http://www.sqlite.org/sqlite-amalgamation-3071501.zip,然后上传至服务器。解压
配置SVN与apache
1、创建svn项目仓库
2、创建权限配置文件
3、创建用户认证文件
4、加载模块
svn安装完成后,会在/app/sinova/svn/libexec目录下产生mod_authz_svn.so和mod_dav_svn.so这两个模块,将这两个模块文件拷到apache模块目录下。
![](http://s3.51cto.com/wyfs02/M01/5A/2D/wKiom1T4IIWT5luNAACEacnkrY4008.jpg)
5、编辑apache配置文件
6、启动apache[使用root用户,1024以下的端口全要有root权限启动]
1、通过浏览器访问svn,在地址栏中输入http://192.168.0.105/ltzb/test
![](http://s3.51cto.com/wyfs02/M01/5A/29/wKioL1T4IgajSdjxAAEVozJqVNA096.jpg)
2、通过windows下的TortoiseSVN客户端checkout下载操作
在E盘新建一个目录test(名称自定),进入该目录,鼠标右键选择SVN checkout...
![](http://s3.51cto.com/wyfs02/M00/5A/29/wKioL1T4IkqDOKRcAAFOzFAxngI745.jpg)
![](http://s3.51cto.com/wyfs02/M01/5A/29/wKioL1T4IoKhflr5AAF-ObkUie4849.jpg)
3、通过windows下的TortoiseSVN客户端commit上传操作
鼠标右键 E盘test目录,选择SVN Commit...
![](http://s3.51cto.com/wyfs02/M02/5A/2D/wKiom1T4Ib7T4-1vAAEE5LB3Eyw920.jpg)
![](http://s3.51cto.com/wyfs02/M01/5A/29/wKioL1T4Iw_DULNcAAFhpwmjTEU253.jpg)
4、在windows下的D盘新建lipengfei目录,并checkout测试第3步测试成功否
在D盘新建一个目录lipengfei(名称自定),进入该目录,鼠标右键选择SVN checkout...
![](http://s3.51cto.com/wyfs02/M01/5A/2D/wKiom1T4ImCwY89lAAFN-7mVhn0916.jpg)
![](http://s3.51cto.com/wyfs02/M02/5A/29/wKioL1T4I5my5Z6gAADDM-u3HDo236.jpg)
可以看出第3步在E盘test目录上传的1.txt是成功的,我在D盘新建lipengfei目录可以成功checkout下载出来!
5、在windows下的D盘新建lipengfei目录,增加2.txt,测试E盘test目录的SVN update
在D盘lipengfei目录增加2.txt,鼠标右键该目录选择SVN Commit...
![](http://s3.51cto.com/wyfs02/M01/5A/29/wKioL1T4I-PAvQhBAADGZZ6INLs656.jpg)
![](http://s3.51cto.com/wyfs02/M01/5A/2D/wKiom1T4IuqxSdUrAAF_k3Q5pt4411.jpg)
![](http://s3.51cto.com/wyfs02/M02/5A/29/wKioL1T4JEWjmZkbAAEy4o6KiZk624.jpg)
进入E盘,鼠标右键test目录选择SVN Update...
![](http://s3.51cto.com/wyfs02/M00/5A/29/wKioL1T4JGTSqUIKAAEjDVeYo7s038.jpg)
![](http://s3.51cto.com/wyfs02/M02/5A/2D/wKiom1T4I3Gw7Y4oAADiRSuex-w126.jpg)
可以看出在D盘lipengfei目录上传的2.txt是成功的,我在E盘test目录可以成功update出来!
附上异常情况
在Linux环境下安装好SVN服务器后,在Linux环境下可以正常地检出、提交,在Windows PC上把已有的Repository检出后,结果在提交的时候出现以下错误:
svn: Can’t open file ‘/home/svn/db/txn-current-lock’: Permission denied
出现这种问题的原因在于搭建SVN服务器,包括创建Repository目录/home/svn目录下的一切子目录和文件都是在root用户下进行的,所以在root用户下检出、提交都没有问题。可在Windows PC上从客户端访问就有问题了,因为是只有拥有管理器权限的人才能对Repository目录进行完全控制,而在Windows从客户端访问的话,因为是Users用户组的,对Repository没有修改权限,所以不能提交。
解决办法:在服务器上把Users对Repository的完全控制权限加上就可以了,执行如下命令对/app/svnroot/ltzb目录下的所有文件和子目录添加Users的读写权限
chmod -R o+rw /app/svnroot/ltzb/test
现在可以正常地从Windows客户端下面进行检出和提交了。
redhat6.4(64位) apr-1.5.1.tar.gz apr-util-1.5.3.tar.gz httpd-2.2.27.tar.gz sqlite-amalgamation-3.6.17.tar.gz sqlite-amalgamation-3071501.zip subversion-1.8.10.tar.gz TortoiseSVN_1.8.6.25419_x64_XiaZaiBa.zip(windows客户端)
点击 下载所有源码包(免费下载,送给需要的朋友们)
SVN介绍
SVN是一个版本控制工具,Subversion的版本库(repository),就是位于服务器,统一管理和储存数据的地方。
题外话,搭建SVN服务器apache是必须的吗?
Subversion(SVN)作为一个单独的版本管理软件是不具备网页浏览功能的。就是说,你可以用版本管理的客户端比如:TotoriseSVN来和
SVN服务器进行连接。这样如果你的电脑没有安装SVN客户端就不能使用SVN服务器提供的服务了。为了实现请客户端的目标,就想通过网页来进行访问浏
览。所以就将网页浏览的功能通过Apache服务器来实现。而通过Apache的插件来和SVN进行连接后,用户可以通过浏览
器:IE,Firefox,NetScape等,访问SVN服务器。这样很方便了。现在有不少的SVN服务器软件直接提供网页功能,而且支持图形界面。我
个人使用的是VisualSVN,感觉不错,很容易管理,图形化的界面。你可以尝试下,至于SVN客户端你可以用TotoriseSVN。
NetBeans,Eclipse等开发IDE都内置了SVN插件,很容易用的。
SVN数据存储方式
在Subversion中,版本库的数据存储有两种方式:一种是在Berkeley DB数据库中存放数据;另一种是普通文件,采用自定义的格式来存储,称为FSFS。
SVN搭建
1、关闭iptables、selinux
service iptables stop //关闭防火墙 setenforce 0 //临时关闭selinux vi /etc/selinux/config //永久关闭,要重启 将SELINUX=enforcing改为SELINUX=disabled2、创建管理用户
groupadd sinova mkdir /app useradd -d /app/sinova -g sinova sinova echo "sinova" | passwd --stdinsinova
3、修改/etc/hosts
vi /etc/hosts 追加 192.168.8.88 svn4、安装软件包
4.1安装apache
tar zxf httpd-2.2.27.tar.gz cd httpd-2.2.27 ./configure --prefix=/app/sinova/apache--enable-dav --enable-so --enable-modules=most make make install4.2 安装apr、apr-util
tar zxf apr-1.5.1.tar.gz cd apr-1.5.1 ./buildconf #验证系统是否已经安装python、autoconf、libtool,如果没有安装,使用yum或rpm方式安装相应包即可。验证正确的如下:
![](http://s3.51cto.com/wyfs02/M02/5A/29/wKioL1T4IM_S-1iYAAGzJKhXGsU065.jpg)
./configure --prefix=/app/sinova/apr make make install
tar zxf apr-util-1.5.3.tar.gz cd apr-util-1.5.3 ./configure --prefix=/app/sinova/apr-util--with-apr=/app/sinova/apr make make install
4.3 安装sqlite
tar zxf sqlite-amalgamation-3.6.17.tar.gz cd sqlite-3.6.17/ ./configure --prefix=/app/sinova/sqlite make make install
4.4 安装svn
tar zxf subversion-1.8.10.tar.gz cd subversion-1.8.10 ./configure --prefix=/app/sinova/svn--with-apxs=/app/sinova/apache/bin/apxs--with-apr=/app/sinova/apr/bin/apr-1-config--with-apr-util=/app/sinova/apr-util/bin/apu-1-config--with-sqlite=/app/sinova/sqlite/ --with-openssl --with-zlib--enable-maintainer-mod make make install
configure时遇到错误:
get the sqlite 3.7.15.1amalgamation from: http://www.sqlite.org/sqlite-amalgamation-3071501.zip unpack the archive usingunzip and rename the resulting
directory to:
/app/soft/subversion-1.8.10/sqlite-amalgamation
configure: error:Subversion requires SQLite
解决办法:
如果服务器不能联网,下载http://www.sqlite.org/sqlite-amalgamation-3071501.zip,然后上传至服务器。解压
unzip sqlite-amalgamation-3071501.zip cp sqlite-amalgamation-3071501/* sqlite-3.6.17然后重新安装sqlite后再configure。
配置SVN与apache
1、创建svn项目仓库
chmod 777 /app [使用root用户操作] mkdir -p /app/svnroot/ltzb #创建svn根目录 /app/sinova/svn/bin/svnadmin create/app/svnroot/ltzb/test
2、创建权限配置文件
vi /app/svnroot/ltzb/authz.conf #添加如下内容 [/] * = r #表示对所有的用户开放读的权限 [test:/] lipengfei= rw #表示用户liyizhen对仓库test有读写权限。
3、创建用户认证文件
/app/sinova/apache/bin/htpasswd -c/app/svnroot/ltzb/authfile lipengfei
4、加载模块
svn安装完成后,会在/app/sinova/svn/libexec目录下产生mod_authz_svn.so和mod_dav_svn.so这两个模块,将这两个模块文件拷到apache模块目录下。
![](http://s3.51cto.com/wyfs02/M01/5A/2D/wKiom1T4IIWT5luNAACEacnkrY4008.jpg)
cp /app/sinova/svn/libexec/* /app/sinova/apache/modules/#设置到权限问题使用root用户来操作,然后赋权给相应用户。
5、编辑apache配置文件
vi /app/sinova/apache/conf/httpd.conf文件,修改如下内容: User sinova #修改 【66行】 Group sinova #修改 【67行】 ServerName www.example.com:80 #去掉本行前面的注释 # LoadModule foo_module modules/mod_foo.so 添加 LoadModule dav_svn_module modules/mod_dav_svn.so #添加 LoadModule authz_svn_module modules/mod_authz_svn.so #添加以下内容在最后添加:
<Location /ltzb> DAV svn SVNParentPath "/app/svnroot/ltzb" AuthzSVNAccessFile"/app/svnroot/ltzb/authz.conf" AuthType Basic AuthName "Subversion.zoneyump" AuthUserFile"/app/svnroot/ltzb/authfile" Require valid-user </location>
6、启动apache[使用root用户,1024以下的端口全要有root权限启动]
/app/sinova/apache/bin/apachectlstart使用SVN客户端测试
1、通过浏览器访问svn,在地址栏中输入http://192.168.0.105/ltzb/test
![](http://s3.51cto.com/wyfs02/M01/5A/29/wKioL1T4IgajSdjxAAEVozJqVNA096.jpg)
2、通过windows下的TortoiseSVN客户端checkout下载操作
在E盘新建一个目录test(名称自定),进入该目录,鼠标右键选择SVN checkout...
![](http://s3.51cto.com/wyfs02/M00/5A/29/wKioL1T4IkqDOKRcAAFOzFAxngI745.jpg)
![](http://s3.51cto.com/wyfs02/M01/5A/29/wKioL1T4IoKhflr5AAF-ObkUie4849.jpg)
3、通过windows下的TortoiseSVN客户端commit上传操作
鼠标右键 E盘test目录,选择SVN Commit...
![](http://s3.51cto.com/wyfs02/M02/5A/2D/wKiom1T4Ib7T4-1vAAEE5LB3Eyw920.jpg)
![](http://s3.51cto.com/wyfs02/M01/5A/29/wKioL1T4Iw_DULNcAAFhpwmjTEU253.jpg)
4、在windows下的D盘新建lipengfei目录,并checkout测试第3步测试成功否
在D盘新建一个目录lipengfei(名称自定),进入该目录,鼠标右键选择SVN checkout...
![](http://s3.51cto.com/wyfs02/M01/5A/2D/wKiom1T4ImCwY89lAAFN-7mVhn0916.jpg)
![](http://s3.51cto.com/wyfs02/M02/5A/29/wKioL1T4I5my5Z6gAADDM-u3HDo236.jpg)
可以看出第3步在E盘test目录上传的1.txt是成功的,我在D盘新建lipengfei目录可以成功checkout下载出来!
5、在windows下的D盘新建lipengfei目录,增加2.txt,测试E盘test目录的SVN update
在D盘lipengfei目录增加2.txt,鼠标右键该目录选择SVN Commit...
![](http://s3.51cto.com/wyfs02/M01/5A/29/wKioL1T4I-PAvQhBAADGZZ6INLs656.jpg)
![](http://s3.51cto.com/wyfs02/M01/5A/2D/wKiom1T4IuqxSdUrAAF_k3Q5pt4411.jpg)
![](http://s3.51cto.com/wyfs02/M02/5A/29/wKioL1T4JEWjmZkbAAEy4o6KiZk624.jpg)
进入E盘,鼠标右键test目录选择SVN Update...
![](http://s3.51cto.com/wyfs02/M00/5A/29/wKioL1T4JGTSqUIKAAEjDVeYo7s038.jpg)
![](http://s3.51cto.com/wyfs02/M02/5A/2D/wKiom1T4I3Gw7Y4oAADiRSuex-w126.jpg)
可以看出在D盘lipengfei目录上传的2.txt是成功的,我在E盘test目录可以成功update出来!
附上异常情况
在Linux环境下安装好SVN服务器后,在Linux环境下可以正常地检出、提交,在Windows PC上把已有的Repository检出后,结果在提交的时候出现以下错误:
svn: Can’t open file ‘/home/svn/db/txn-current-lock’: Permission denied
出现这种问题的原因在于搭建SVN服务器,包括创建Repository目录/home/svn目录下的一切子目录和文件都是在root用户下进行的,所以在root用户下检出、提交都没有问题。可在Windows PC上从客户端访问就有问题了,因为是只有拥有管理器权限的人才能对Repository目录进行完全控制,而在Windows从客户端访问的话,因为是Users用户组的,对Repository没有修改权限,所以不能提交。
解决办法:在服务器上把Users对Repository的完全控制权限加上就可以了,执行如下命令对/app/svnroot/ltzb目录下的所有文件和子目录添加Users的读写权限
chmod -R o+rw /app/svnroot/ltzb/test
现在可以正常地从Windows客户端下面进行检出和提交了。
相关文章推荐
- About SVN
- CentOS 6.5搭建Apache整合SVN 1.8.5服务器(多版本库权限配置)
- CentOS下SVN服务器测试版安装记录
- Apache Isis 1.4.0 发布,领域驱动开发框架
- Linux快速构建apache web服务器
- Awstats处理多apache日志
- 安装perl模块小窍门
- PHP+Apache在Windows 9x下的安装和配置
- Apache服务器配置全攻略
- Apache Web让JSP“动”起来
- Linux Apache+MySQL+PHP
- 建立Apache+PHP+MySQL数据库驱动的动态网站
- apache 环境下 php 的配置注意事项
- 在RedHat下安装apache jserv 1.1.2方法
- windows中PHP5.2.14以及apache2.2.16安装配置方法第1/2页
- 在Windows XP下安装Apache+MySQL+PHP环境
- 解析阿里云ubuntu12.04环境下配置Apache+PHP+PHPmyadmin+MYsql
- apache rewrite防盗链三例
- Apache 配置详解(最好的APACHE配置教程)
- 让GoogleCode的SVN下的HTML文件在FireFox下正常显示.