简要记录下apache+svn在centos5.3下的安装。
考虑维护的方便,程序使用源码安装方式。
之前可能已经装了其他的依赖包,版本选对后,基本上顺利。
apache:2.2.11,svn:1.5.6。
 
由于centos5.3的sqlite包是3.3.x的,一直都升级不到3.6.x
而svn的1.6.2最新版要求sqlite的版本必须为3.6x以上,折腾了一下午也没搞定,还害得依赖sqlite的工具都用不了。
血的教训啊!
 
ok,两个package:httpd.2.2.11.tar.gz,subversion-1.5.6.tar.gz
安装apache:
#./configuration --enable-dav --enable-so --prefix=/usa/local/apache2.2.11

#make

#make install
 
这个过程都比较顺利,把apache导入到系统服务:
 
cp /bin/apachectl /etc/init.d/httpd

chmod +x /etc/init.d/httpd
chkconfig --add httpd
 
完成以上操作后,记得修改httpd.conf里面的端口的serverName,
 
测试通过。下来是svn。
#./configuration --with-apxs=/usr/local/apache2.2.11 --with-apr=/usr/local/apache2.2.11 --with-apr-util=/usr/local/apache2.2.11 --prefix=/usr/local/subversion1.5.6

#make

#make install
 
完成后,校验下:
/usr/local/subversion1.5.6/bin/svnserve --version,
如正确,可以看到版本输出。
创建根:
svnadmin create /data/svnroot/repository
 
下来是整合。
修改httpd.conf里面的用户组:
User daemon --> User apache
Group daemon --> Group apache
apache组和用户要单独建立。
 
然后将svn根属主修改为apache:
chown -R apache:apache /data/svnroot/repository
 
整合到apache:
 
<Location /svn>
# declare svn context
DAV svn

# use repository
SVNParentPath     /data/svnroot/repository

# config the acl
AuthzSVNAccessFile /data/svnroot/policy.svn

#config auth type
AuthType Basic

# set server name
AuthName "welcome to fsmos Subversion Repository"

#config the user password
AuthUserFile /data/svnroot/passwd.svn

# required user's password
Require valid-user
</Location>
 
policy.svn为目录访问策略,passwd.svn存放密码(使用htpasswd -c创建,无c追加)
 
policy.svn样本:
[test:/] //这表示,仓库test的根目录下的访问权限    
     wooin = rw //test仓库wooin用户具有读和写权限    
     bao = r //test仓库bao用户具有读权限    
     [test2:/] //test2仓库根目录下的访问权限    
     wooin = r //wooin用户在test2仓库根目录下只有读权限    
     bao = //bao用户在 test2仓库根目录下无任何权限    
     [/] //这个表示在所有仓库的根目录下    
     * = r //这个表示对所有的用户都具有读权限    
     #[groups] //这个表示群组设置    
     #svn1-developers = wooin, bao //这个表示某群组里的成员    
     #svn2-developers = wooin    
     #[svn1:/]    
     #@svn1-developers = rw //如果在前面加上@符号,则表示这是个群组权限设置
 
至此差不多完成。
如果完成后403错误,可能是在文件访问权限那里没设置好,比如要添加apache用户,把svn的属主分配为apache之类的。
网上大把抓。