2011-01-05 15:01:00| 分类: Apache+Svn架设 | 标签: |举报 |字号大中小 订阅
此篇为蚊子亲身奋斗N小时滴历程,请各位大虾多多指点;(资料来自各大大 各本本滴综合 感谢!)
环境:
CentOS 5.5-32bit
apache2.2.16
http://httpd.apache.org/download.cgi
subversion-1.6.12.tar.gz
http://subversion.tigris.org/downloads/subversion-1.6.12.tar.gz
subversion-deps-1.6.12.tar.gz
http://subversion.tigris.org/downloads/subversion-deps-1.6.12.tar.gz
apr-1.2.11.tar.gz
apr-util-1.2.2.tar.gz
【安装命令】
一、apache安装
cd /apr
#./configure --prefix=/usr/local/apr
make
make install
cd /apr-util
#./configure --prefix=/usr/local/apr-util --with-apr=/usr/local/apr
make
make install
[root@localhost httpd-2.2.16]# ./configure --prefix=/usr/local/apache2/ --enable-dav --enable-so
make
make install
//启动apache服务
# /usr/local/apache2/bin/apachectl start
//打开浏览器输入http://192.168.0.93(Linux系统IP地址)(http://localhost/)如果有测试页"It works!"出现则证明已经安装成功。
二、svn安装
#./configure --prefix=/usr/local/svn --with-apxs=/usr/local/apache2/bin/apxs
make
make install
三、配置
1、# vim /usr/local/apache2/conf/httpd.conf
//查看是否有如下2行,有就对了
LoadModule dav_svn_module modules/mod_dav_svn.so
LoadModule authz_svn_module modules/mod_authz_svn.so
2、建立版本库
//创建库文件所在的目录
# mkdir /home/svnroot
//创建仓库"test"
# /usr/local/svn/bin/svnadmin create /home/svnroot/test
//查看svn是否安装成功 里面多了些文件就对了
# ls /svnroot/test
//这条语句将把路径/home/user/import下找到的文件导入到你创建的Subversion 仓库中去,
//提交后的修订版为1。
# /usr/local/svn/bin/svn import /home/svnroot/project file:///home/svnroot/test -m "1"
Adding /home/svnroot/project/test.file
Committed revision 1.
// 查看版本号
# /usr/local/svn/bin/svnadmin --version
//不让其他人有该目录的权限
# chmod 700 /home/svnroot/
3、配置Apache来支持SVN
# vim /usr/local/apache2/conf/httpd.conf
在末尾加上如下内容:
<VirtualHost *:80>
<Location /svn>
DAV svn
SVNPath /home/svnroot //svn父目录
AuthType Basic //连接类型设置
AuthName "Welcome to MySVN" //连接框提示
AuthUserFile /home/svnroot/conf/default.passwd //用户配置文件
AuthzSVNAccessFile /home/svnroot/conf/default.access //权限配置文件
Require valid-user //采用何种认证
</Location>
ServerName svn.server.com 服务器域名(客服端访问需要设置hosts,如 192.168.0.93 svn.server.com)
DirectoryIndex index.html Apache自动加载
</VirtualHost>
保存退出
重启 apache
# /usr/local/apache2/bin/apachectl restart
打开IE,输入:http://192.168.0.93/test 或 http://localhost/test (http://svn.server.com/test)
会弹出一个输用户和密码的框就对了
4、权限设置
创建svn.passwd文件
# /usr/local/apache2/bin/htpasswd -cm /home/svnroot/conf/default.passwd user1
New password:
Re-type new password:
Adding password for user user1
*第一次添加使用 -c 同时会创建文件,此后可直接创建。详情请参阅htpasswd --help
# /usr/local/apache2/bin/htpasswd –m /var/svnroot/svnpasswd user2
New password:
Re-type new password:
Adding password for user user2
创建svn.authz
# vi /home/svnroot/conf/default.access
[groups]
admin = admin
test = zhangsan
it = lisi
[/]
@admin = rw
* =
[test:/]
@test = rw
* = rw
[it:/]
@it = rw
补充说明:
如果使用apache+svn进行版本控制,那么在创建版本库时产生的conf目录里的配置文件时没意义的。
对版本库的访问时基于apache平台,所以无需启动svnserve,除非同时想采用svn://访问,但是svnserve默认只能开启单一版本库的访问控制,因为svnserve启动必须指向相关版本的目录。
无论是单版本库还是多版本库控制,如果开启了访问控制AuthType Basic,那么用户的管理和权限都在AuthUserFile和AuthzSVNAccessFile指定的文件里。
单个版本控制时,在AuthzSVNAccessFile指定文件里使用[/path/to]配置用户在指定目录权限
多个版本库控制时,在AuthzSVNAccessFile指定文件里进行分组,使用[project_name:/path/to]配置用户在指定版本库的指定目录的权限
【报错处理记录】
一、make编译出错:
现象:
1>[root@localhost apr-util-1.2.2]# make
make[1]: Entering directory `/home/lookdfw/svn_setup/apr-util-1.2.2'
make[1]: Nothing to be done for `local-all'.
make[1]: Leaving directory `/home/lookdfw/svn_setup/apr-util-1.2.2'
[root@localhost apr-util-1.2.2]#
2>make: Nothing to be done for `all'.
解决方法:
make clean (清除以上安装操作)
./configure --prefix=/usr/local/apr-util --with-apr=/usr/local/apr/
make
make install
二、svn出错:
此处刚开始出现问题,浏览器打开后,提示用户名密码,输入后,提示internal server error
检查/usr/local/apache2/logs/error_log文件,发现提示could not open password file
解决办法:
修改Apache配置文件时,将 AuthName "Subversion.zoneyump" 中的""去掉即可,而网上转载来的都带引号。
三、启动Apache出错
1、现象:
[lookdfw@localhost ~]$ /usr/local/apache2/bin/apachectl start
(13)Permission denied: make_sock: could not bind to address 0.0.0.0:80
no listening sockets available, shutting down
Unable to open logs
解决方法:
1>非root用户使用的端口80将无权。使用Root用户操作
2>重启下系统;
2、现象:
[root@localhost local]# /usr/local/apache2/bin/apachectl start
httpd: Syntax error on line 53 of /usr/local/apache2/conf/httpd.conf: Cannot load /usr/local/apache2/modules/mod_dav_svn.so into server: /usr/local/svn/lib/libsvn_subr-1.so.0: undefined symbol: apr_hash_clear
解决方法:
* 注意:--enable-dav --enable-so参数是必须要加的,你还可以根据您的需要添加其他的参数。
* --enable-dav 启用davweb支持,是subversion+apache组合必选,缺少的话,在运行apache会出现undefined symbol: dav_register_provider的错误
附上参数:
[root@localhost httpd-2.2.16]# ./configure --prefix=/usr/local/apache2/ --enable-dav --enable-so
make
make install
五、重启动apache
# apachectl restart 时,会出现mod_dav_svn.so找不到等错误。
# yum list mod_dav_svn ,会发现与之相关的包mod_dav_svn.i386,安装之:
# yum install mod_dav_svn.i386
会发现在/etc/httpd/conf.d文件夹下,自动产生了subversion.conf文件,而且自动添加了如下两行:
LoadModule dav_svn_module modules/mod_dav_svn.so
LoadModule authz_svn_module modules/mod_authz_svn.so
六、进入svn输入正确账号报错:
现象: Server sent unexpected return value (403 Forbidden) in response to OPTIONS
检查所有项目库,均出现此现象;最后检查vim /home/svnroot/conf/default.access 权限,发现里面有一库输入错误少了“-”,更正后全部OK;
评论