zz22 发表于 2018-11-25 07:16:26

基于源码的安装的apache+svn

  基于源码的安装一开始搞得我还是有点复杂的,不过问题也都是解决了,下面来贴一下源码安装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这个文件里面加入就行,格式如下:

# harry = harryssecret
# sally = sallyssecret
zml = zml
admin = admin(你想用几个用户就加几个)
4、修改用户的访问权限
在/svn/svnserve/project/conf/authz文件里修改如下:

# harry_and_sally = harry,sally

#
# harry = rw
# * =

#
# @harry_and_sally = rw
# * = r
zml = zml
[/]
@zml=rw
*=
5、修改svnserve.conf文件,,

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:   92731041-2dae-4c23-97fd-9e1ed7f0d18d
   Password for ‘root’:
   Authentication realm: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 () {
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,在最后添加如下信息:

   
   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

   现在这样就已经完成了,可以用浏览器访问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来访问仓库了



页: [1]
查看完整版本: 基于源码的安装的apache+svn