基于源码的安装一开始搞得我还是有点复杂的,不过问题也都是解决了,下面来贴一下源码安装apache+svn的步骤:
一、安装apache
1、下载apache源码包,这里的是httpd-2.2.23.tar.gz
2、下载apache依赖包,apr-1.2.12 apr-util-1.2.12
3、安装依赖包:
安装apr
# tar -zxvf apr-1.2.12.tar.gz
# cd apr-1.2.12
# ./confiugre --prefix=/usr/local/apr
# make&&make install
安装apr-util
# tar -zxvf apr-util-1.2.12.tar.gz
# cd apr-util-1.2.12
# ./configure --with-apr=/usr/local/apr --prefix=/usr/local/apr-util
# make&&make install
4、安装apache
# tar -zxvf httpd-2.2.23.tar.gz
# cd httpd-2.2.23
./configure --prefix=/usr/local/apache2
--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&&make install
启动apache
# /usr/local/apache2/bin/apachect1 -k start
浏览器查看,显示it works,apache安装成功。
二、安装svn
下载源码包 subversion-1.4.5.tar.gz subversion-deps-1.4.5.tar.gz
# tar –zvxf subversion-1.4.5.tar.gz
# tar –zvxf subversion-deps-1.4.5.tar.gz /*这两个自动解压成一个subversion-1.4.5
# cd subversion-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-util/bin/apu-1-config
--with-ssl
--with-zlib
--enable-maintainer-mode
# make
# make install
查看安装是否成功:
# /usr/local/svn/bin/svnserve --version会显示版本号
查看apache配置文件会有如下两个模块加载
LoadModule dav_svn_module modules/mod_dav_svn.so
LoadModule authz_svn_module modules/mod_authz_svn.so
总结以上呢全是把各种软件包先安装好,安装这些基础没问题之后,下面开始配置svn服务器。
三、配置svn服务器
1、新建一个目录作为版本库
# mkdir -R /svn/svnserve/
# /usr/local/svn/bin/svnadmin create /svn/svnserve/project
2、初始化版本仓库
# mkdir project project/server project/client project/test (建立临时目录)
# svn import project/ file:///home/svn/project -m “初始化SVN目录”
# rm -rf project (删除临时建立的目录)
3、添加用户(注:这里的添加用户是为测试svn服务器本身,结合apache后面介绍)
svn用户添加非常简单,在/svn/svnserve/project/conf/passwd这个文件里面加入就行,格式如下:
[users]
# harry = harryssecret
# sally = sallyssecret
zml = zml
admin = admin(你想用几个用户就加几个)
4、修改用户的访问权限
在/svn/svnserve/project/conf/authz文件里修改如下:
[groups]
# harry_and_sally = harry,sally
# [/foo/bar]
# harry = rw
# * =
# [repository:/baz/fuz]
# @harry_and_sally = rw
# * = r
zml = zml
[/]
@zml=rw
*=
5、修改svnserve.conf文件,,
[general]
anon-access = none
auth-access = write
password-db = /svn/svnserve/project/conf/passwd
authz-db = /svn/svnserve/project/conf/authz
6、现在启动svn服务器
# /usr/local/svn/bin/svnserve -d -r /svn/svnserve/
7、测试一下
# svn co svn://172.16.1.218/project
Authentication realm: <svn://192.168.60.10:3690> 92731041-2dae-4c23-97fd-9e1ed7f0d18d
Password for ‘root’:
Authentication realm: <svn://192.168.60.10:3690> 92731041-2dae-4c23-97fd-9e1ed7f0d18d
Username: zml
Password for ‘zml’:
A project/test
A project/server
A project/client
Checked out revision 1. ( 测试提取成功 )
# cd project/server
# vim main.c
# svn add main.c
# svn commit main.c -m “测试一下”
Adding main.c
Transmitting file data .
Committed revision 2. ( 测试提交成功 )
以上呢就证明了svn服务器是成功的,那么现在要把它与apache结合到一块
四、配置svn的apache的支持
那么对于http的支持这里有两种方法,一种是用svn的passwd文件,一种是http生成用户文件
先介绍用svn的passwd文件,
1、转换SVN服务器的密码
由于SVN服务器的密码是明文的,HTTP服务器不与支持,所以需要转换成HTTP支持的格式。网上找了个脚本
脚本内容如下:
# cd /svn/svnserve/project/conf/
# vim PtoWP.pl
#!/usr/bin/perl
# write by huabo, 2009-11-20
use warnings;
use strict;
#open the svn passwd file
open (FILE, "passwd") or die ("Cannot open the passwd file!!!n");
#clear the apache passwd file
open (OUT_FILE, ">webpasswd") or die ("Cannot open the webpasswd file!!!n");
close (OUT_FILE);
#begin
foreach (<FILE>) {
if($_ =~ m/^[^#].*=/) {
$_ =~ s/=//;
`htpasswd -b webpasswd $_`;
}
}
# chmod +x PtoWP.pl
# ./PtoWP.pl
Adding password for user pm
现在目录下会多一个webpasswd文件
2、修改httpd.conf,添加关于SVN服务器的内容
编辑/usr/local/apache2/conf/httpd.conf,在最后添加如下信息:
<Location /project>
DAV svn
SVNPath /svn/svnserve/project/
AuthType Basic
AuthName "svn for project"
AuthUserFile /svn/svnserve/project/conf/webpasswd
AuthzSVNAccessFile /svn/svnserve/project/conf/authz
Satisfy all
Require valid-user
</Location>
现在这样就已经完成了,可以用浏览器访问http://172.16.1.218/project/
如果有权限问题;
修改svn目录的属主为apache帐号:chown -R apache.apache /svn/svnserve/project/
那还有一种方法是用apache自带的htpasswd生成用户文件如下:
1、添加用户:
# /usr/local/apache/bin/htpasswd –c /svn/passwd zml
第一次设置用户时使用-c表示新建一个用户文件。回车后输入用户密码,完成对用户的增加
第二次添加用户不需要带 –c 参数
2、更改httpd.conf文件
#vi /usr/local/apache/conf/httpd.conf
在文件末尾添加
DAV svn
SVNParentPath /svn/svnserve/project (此处配置你的版本库根目录) --注意这里不要svnpath
AuthType Basic (连接类型设置 基本验证)
AuthName "Hello welcome to here" (此处字符串内容修改为提示对话框标题)
AuthUserFile /svn/passwd (此处修改为访问版本库用户的文件,
用apache 的htpasswd命令生成)
AuthzSVNAccessFile /svn/svnserve/project/conf/auth.conf (此处修改为访问版本库权限的文件)
Require valid-user ("Require valid-user"告诉apache在authfile中所有的用户都可以访问。
如果没有它,则只能第一个用户可以访问新建库)
保存文件退出!
重新启动apache
# /usr/local/apache/bin/apachectl –k restart
重启svn
就可以通过 http://172.16.1.218/project 这个URL来访问仓库了
转载于:https://blog.51cto.com/zhangmlgg/1112408