搞了一个subversion 花费了我两天的时间,其间虽然有干其他的事情,但是来来回回的装,搞的我是一点脾气都没有了,俗话说不经历风雨真的见不到彩虹。就是这个意思. 原本本的下来
打算使用apache来浏览subversion ,并且apache2 支持subversion 所以下载了httpd-2.2.17.tar.gz.
还需要两个包,一个是apr-1.3.8.tar.gz, 和一个apr-util-1.3.9.tar.gz ,而0.9 的版本的不支持apache2 所以请注意.
subversion 找一个最新的就可以.subverion-1.5.6.tar.gz.
subversion-deps-1.5.6.tar.bz2
好了文件准备好了,在做什么事之间 先要准备文件,把相关的资料多找一下,不必出了错还要找很多的东西,浪费不少时间.
tar -xzvf httpd.httpd-2.2.17.tar.gz.
cd httpd-2.2.9
./configure --prefix=/usr/local/apache --enable-so --enable-dav:命令so模块是用来提DSO支持的apache核心模块,这里设置启动 设置的安装目录 和参数
make
make install
进入/usr/local/apache/bin/apachectl start 就启动了. : 在这里注意默认的端口是80 ,如果被占用的话,修改
../conf/httpd.conf , 文件中Listen 192.168.0.55:81 修改一下就可以了 可以用netstat -an |grep 80 来查看一下是否起来了
2.安装apr,以及apr-util
先安装apr.
./configure
make
make install
接着安装apr-util
./configure --prefix=/usr/local/apr-util --with-apr=/usr/local/apr/ --with-berkeley-db=/usr/local/bdb(没有可以不用)
(这步要把berkeley数据库一起编译进去,否则berkeley就白装了) make
make
make install
3.安装subversion
解压 subverion-1.5.6.tar.gz. 和 subversion-deps-1.5.6.tar.bz2 ,直接解压就可以到一个目录了就
进入subversion -1.5.6 之后发现仍然有 apr 和 apr-util .
可是 先前已经安装了所以把该目录下的 apr 和apr-util 删除就可以了。
然后运行:
第一: ./configure --prefix=/usr/local/subversion --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----------------
## apr-util=/usr/local/apr-util/bin/apu-1-config //这个的路径自己看具体的文件后定
第二: make--------------
第三: make install---------------
其中在make 这一步会出错,出现编译ssl 的错误.原因是
�@是因�� Red Hat Linux 9.0 的 krb5-devel 套件把 kerberos 的 include file 放到了 /usr/kerberos/include �e面,而不是一般位置的 /usr /include �@��目�。而 openssl 支援 kerberos,因此在 compile 使用到 openssl 的程式就很容易�l生找不到 kerberos 的 include file 的�e�`。
而解�Q的�k法相����危�首先��然要�_定 krb5-devel 以及 krb5-libs 等套件�_��有安�b在系�y上,而不是根本�]安�b;接下�恚�建立以下的 symbolic links:
这是redhat 9.0 的原因,所以做以下的link 就可以了.
ln -s /usr/kerberos/include/com_err.h /usr/include/
ln -s /usr/kerberos/include/profile.h /usr/include/
ln -s /usr/kerberos/include/krb5.h /usr/include/
三、配置subversion
在装subversion 之前最好把apache 启动 起来了,然后就可以把模块加入httpd.conf 中去了。然后在
/usr/local/subversion/bin/svnserve -d 下 把 svn 启动起来
默认端口是3690 ,用service iptables stop 来 关掉firewall
第一:创建repository
/usr/local/subversion/bin/svnadmin /home/talend/svn/www 其中svn 目录 必须存在,首先create 一个
尤其创建apache 可以默认加载一个apache 的用户和组.
所以在httpd.conf 里把 user daemon group daemon 其中的daemon 改成apache,这样apache 用户具有了访问apache 的权限。
chown -R apache:apache /home/talend/svn 这样repository 就有只能由 apache 用户来 访问,增加了安全性.
第二:配置apache 支持svn
5、配置apache支持svn
vi /usr/local/apache/conf/httpd.conf (编辑httpd.conf文件)
在文件末尾添加
<Location /svn>
DAV svn
SVNParentPath /svn/project (此处配置你的版本库根目录)
AuthType Basic (连接类型设置 基本验证)
AuthName "Hello welcome to here" (此处字符串内容修改为提示对话框标题)
AuthUserFile /home/talend/svn/passwd (访问版本库用户的文件,用apache 的htpasswd命令生成)
AuthzSVNAccessFile /home/talend/svn/auth.conf (此处修改为访问版本库权限的文件)
Require valid-user ("Require valid-user"告诉apache在authfile中所有的用户都可以访问)
</Location>
保存文件退出!
其中
/usr/local/apache/bin /htpasswd -c /home/talend/svn/passwd zsun ; zsun 是自己输入的
然后会提示输密码,生成一个密码文件
直接vi 一个auth.conf 在上边的目录下
/*[groups]
Admin= user1,user2 (这个表示admin群组里的成员 user1,user2);
Develop=u1, u2 (这个表示Develop群组里的成员 u1,u2)
[www:/] (这表示,仓库www的根目录下的访问权限)
user1 = rw (www仓库user1用户具有读和写权限)
user2 = r ( www仓库userl用户具只有读权限)
@develop=rw (这表示 群 develop的成员都具有读写权限)
[/] (这个表示在所有仓库的根目录下)
* = r (这个表示对所有的用户都具有读权限)
*/
我自己的写成这样
[groups]
Admin=zsun
[www:/]
zsun=rw
[/]
*=r
注意:在编辑authz.conf文件时,所有行都必须要顶头写,否则会报错.
然后重新启动subversion 和 apache
http://localhost/svn/www/ 输入用户名和密码就可以logon 进去了。。
欢喜一大场.祝愿各位也能成功.有啥问题可以留言.
系统默认的apache 缺少dav 模块..