Apache+SVN搭建网页版SVN

回复 收藏
本帖最后由 Kry1702 于 2016-6-12 23:56 编辑


1.软件版本
SVN版本:subversion-1.9.4
Apache版本:httpd-2.4.20
Apr版本:apr-1.5.2

Apr-Util版本:apr-util-1.5.4

SQLite版本:sqlite-amalgamation-3.13.0


2.搭建结构
/data
└── svndata
    ├── config
    │    └── authz

    ├── mydata

         ├── test1data

         └── test2data
    ├── .password

    └── public




3.软件下载
svn下载
[root@localhost ~]# cd /usr//local/src/

[root@localhost src]# wget http://mirror.bit.edu.cn/apache/subversion/subversion-1.9.4.tar.bz2

或者官网下载:
官网下载http://subversion.apache.org/packages.html


SVN客户端:TortoiseSVN,官网下载http://tortoisesvn.net/downloads.html


Apache下载
[root@localhost src]# wget http://mirror.bit.edu.cn/apache/httpd/httpd-2.4.20.tar.bz2
或者:
官网下载http://www.apache.org/dyn/closer.cgi



Apr下载
[root@localhost src]# wget http://mirror.bit.edu.cn/apache/apr/apr-1.5.2.tar.bz2

Apr-Util下载

[root@localhost src]# wget http://mirror.bit.edu.cn/apache/apr/apr-util-1.5.4.tar.bz2


SQLite下载

[root@localhost src]# wget http://www.sqlite.org/2016/sqlite-amalgamation-3130000.zip




4.解压文件
解压apr:


[root@localhost ~]# cd /usr/local/src/

[root@localhost src]# tar jxvf  apr-1.5.2.tar.bz2


解压apr-util:
[root@localhost src]# tar jxvf  apr-util-1.5.4.tar.bz2


解压httpd:
[root@localhost src]# tar jxvf httpd-2.4.20.tar.bz2


解压sqlite:
[root@localhost src]# unzip sqlite-amalgamation-3130000.zip

解压subversion:
[root@localhost src]# tar jxvf subversion-1.9.4.tar.bz2


5.apr与apr-util支持httpd

[root@localhost src]# cp -r apr-1.5.2 ./httpd-2.4.20/srclib/apr
[root@localhost src]# cp -r apr-util-1.5.4 ./httpd-2.4.20/srclib/apr-util/


6.编译apache

[root@localhost src]# cd httpd-2.4.20

[root@localhost httpd-2.4.20]#  ./configure --prefix=/usr/local/apache --with-included-apr --enable-so --enable-deflate=shared --enable-expires=shared --enable-rewrite=shared --with-pcre --enable-dav  --enable-rewrite --enable-maintainer-mode

[root@localhost httpd-2.4.20]# make && make install




报错:缺少pcre
解决办法:[root@localhost ~]# yum -y install pcre-devel


7.配置apache服务
[root@localhost ~]# cp /usr/local/apache/bin/apachectl /etc/init.d/httpd

修改httpd配置:
[root@localhost ~]# vim /etc/init.d/httpd

添加一下内容:
#chkconfig: 35 85 15
#description: apache


加入服务:
[root@localhost ~]# chkconfig --add httpd

[root@localhost ~]# chkconfig --level 35 httpd on




8..测试httpd是否正常
[root@localhost ~]# service httpd start

浏览器地址栏中输入服务器IP,显示“It Works”表示httpd搭建成功。如果不成功请查看日志文件。

http://www.apelearn.com/bbs/forum.php?mod=image&aid=7480&size=300x300&key=751d9b71907d35bf&nocache=yes&type=fixnone


9.配置subversion支持组件sqlite


[root@localhost httpd-2.4.20]# cd  ../subversion-1.9.4
[root@localhost subversion-1.9.4]# mkdir sqlite-amalgamation

[root@localhost subversion-1.9.4]# cp ../sqlite-amalgamation-3130000/s* ./sqlite-amalgamation




注意:如果在subversion-1.9.4中存在”sqlite-amalgamation“目录,就不需要创建,直接将sqlite目录下的东西拷贝进去。
10.编译安装subversion
[root@localhost subversion-1.9.4]# mkdir /usr/local/subversion/
[root@localhost subversion-1.9.4]#  ./configure --with-apxs=/usr/local/apache/bin/apxs --with-apr=/usr/local/apache/ --with-apr-util=/usr/local/apache/ --prefix=/usr/local/subversion --with-zlib --enable-mod-activation
[root@localhost subversion-1.9.4]#  make && make install


解释:
--with-apxs:安装扩展模块的工具;

--with-apr:指定apr;

--with-apr-util:指定apr-util;

--prefix:指定安装路径;

--with-zlib:支持zlib压缩库;

--enable-mod-activation:启用apache中的mod_dav_svn;


注意:
如果不加--enable-mod-activation选项会报错,直接在httpd.conf中添加LoadModule dav_svn_module modules/mod_dav_svn.so,LoadModule authz_svn_module modules/mod_authz_svn.so 启动httpd就会报“cannot load modules/mod_dav_svn.so into server:/usr/local/apache/modules/mod_dav_svn.so:cannot open shared object file:no such file or directory”

报错:如果编译包缺少zlib
方法一:yum安装推荐使用:

[root@localhost ~]# yum -y install zlib

方法二:编译安装:
[root@localhost ~]# cd  /usr/local/src/

[root@localhost src]# wget http://zlib.net/zlib-1.2.8.tar.gz
或官网下载:http://www.zlib.net/
[root@localhost src]# tar zxvf zlib-1.2.8.tar.gz

[root@localhost src]# cd zlib-1.2.8

[root@localhost zlib-1.2.8]# mkdir /usr/local/zlib

[root@localhost zlib-1.2.8]# ./configure --prefix=/usr/local/zlib

[root@localhost zlib-1.2.8]# make && make install

再次编译时指定选项--with-zlib=/usr/local/zlib






11.配置subversion环境变量
[root@localhost ~]# vim /etc/profile.d/path.sh

添加一下内容:
#!/bin/bash
export PATH=$PATH:/usr/local/subversion/bin


生效配置:
[root@localhost ~]# source /etc/profile.d/path.sh


12.建立仓库(用于存放项目)
[root@localhost ~]# mdkir -p /data/svndata/   =>创建仓库
[root@localhost ~]# mkdir /data/svndata/mydata/  =>创建仓库




13.创建项目
[root@localhost ~]#svnadmin create /data/svndata/public  => 项目public
[root@localhost ~]# svnadmin create /data/svndata/mydata/test1data   => 项目test1data   

[root@localhost ~]# svnadmin create /data/svndata/mydata/test2data   => 项目test2data   

[root@localhost ~]# chown -R daemon.daemon /data/svndata







14.配置svn用户帐号密码
[root@localhost ~]# htpasswd -c /data/svndata/.password  test1
New password: 123123
Re-type new password: 123123

Updating password for user test1
[root@localhost ~]# chown daemon.daemon /data/svndata/.password




-c:创建密码文件
创建test用户,密码为123123
注意:再添加新用户时,不需要加-c选项。例:htpasswd  /data/svndata/.password  test2


15.配置权限文件
创建存放权限文件目录:
[root@localhost ~]# mkdir /data/svndata/config/

复制访问权限文件:
[root@localhost ~]# cp /data/svndata/public/conf/authz  /data/svndata/config/authz


修改所属主群:
[root@localhost ~]# chown -R daemon.daemon /data/svndata/config/




16.配置权限文件
[root@localhost ~]# vim /data/svndata/config/authz


添加以下内容:
[repository:/]   
test= rw      
test1= r      

[groups]
admin=admin
user1=test1,test2

[public:/]           =>仓库public的根目录下的访问权限
@admin = rw
@user1 = rw

[test1data:/]     
test1 = rw         =>test1data仓库test1用户具有读和写权限

[test2data:/]   
test2 = rw         =>test2data仓库test2用户具有读权限



扩展说明:
[/]         =>在所有仓库的根目录下
* = r       =>对所有的用户都具有读权限
[groups]    =>群组设置
svn1-developers = hrwang,bao  =>某群组里的成员
svn2-developers = hrwang
[svn1:/]   =>svn1仓库的根权限配置
@svn1-developers = rw =>如果在前面加上@符号,表示这群组权限设置
17.httpd中配置svn
[root@localhost ~]# vim /usr/local/apache/conf/httpd.conf


末尾添加:
  =>虚拟路径
DAV svn
SVNParentPath /data/svndata/mydata  => 仓库路径。
AuthzSVNAccessFile  /data/svndata/config/authz  =>权限配置文件
AuthType Basic   =>认证类型
AuthName "svn for private"  =>提示语
AuthUserFile /data/svndata/.password   =>用户密码保存文件
Require valid-user    =>启用密码文件,否则不会识别到AuthUserFile参数



DAV svn
SVNPath /data/svndata/public
AuthzSVNAccessFile  /data/svndata/config/authz
AuthType Basic
AuthName "svn for public"
AuthUserFile /data/svndata/.password
Require valid-user








18.导入项目文件(有项目数据就导,没就跳过)
本地导入:[root@localhost subversion]# svn import /tmp/test  http://localhost/mydata/test1data -m /tmp/test/2.txt --username test


远程导入:[root@localhost subversion]# svn import /tmp/test  http://192.168.0.183/pubilc -m /tmp/test/2.txt --username test


格式:
svn import  导入文件路径  http://svn项目路径
-m:信息文件
--username:指定用户名

19.导出项目文件
[root@localhost ~]# svn co http://localhost/public /tmp/test/ =>导出public项目文件


格式
svn co http://SVN_PATH/svn_project
svn co file:///SVN_PATH/svn_project
svn co -r 12 file:///var/lib/svn/dev/projects




20.访问测试
测试public
浏览器中输入:IP/public
http://www.apelearn.com/bbs/forum.php?mod=image&aid=7481&size=300x300&key=5fe104821e743838&nocache=yes&type=fixnone
http://www.apelearn.com/bbs/forum.php?mod=image&aid=7482&size=300x300&key=699d094c37aa9191&nocache=yes&type=fixnone


测试test1data
http://www.apelearn.com/bbs/forum.php?mod=image&aid=7483&size=300x300&key=f802f11bbbac2016&nocache=yes&type=fixnone
http://www.apelearn.com/bbs/forum.php?mod=image&aid=7484&size=300x300&key=0f2e674c9b5991ae&nocache=yes&type=fixnone
如果不登录不成功,请检查防火墙、配置文件、查看apache错误日志是一个不错的想法。








clipboard.png clipboard2.png clipboard3.png clipboard4.png clipboard5.png
2016-06-03 15:33 举报
已邀请:
0

Landon

赞同来自:

0

Kry1702

赞同来自:

回复帖子,请先登录注册

退出全屏模式 全屏模式 回复
评分
可选评分理由: