简要记录下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之类的。
网上大把抓。