1:安装apache http server
yum httpd
2:查看安装目录
rpm -ql httpd | cat -n
会看到相关值
/etc/httpd/conf/httpd.conf
/usr/bin/htpasswd
/usr/sbin/apachectl
/usr/lib/httpd/modules
3:启动apache http server,检查是否安装成功
/usr/sbin/apachectl start
访问http://XXXXXX/
4:安装subversion
yum subversion
svnserve --version
5:检查svn模块是否安装到apache下
cd /etc/httpd/modules
ls | grep mod_dav_svn.so
ls | grep mod_authz_svn.so
如果都没有,需要在安装
yum install mod_dav_svn
再检查modules目录下是否有mod_dav_svn.so,mod_authz_svn.so
6:代码库创建
cd opt
mkdir -p svn/pinganfu/paff
svnadmin create /opt/svn/pinganfu/paff
7:apache 配置svn
在httpd.conf文件中添加
LoadModule dav_svn_module modules/mod_dav_svn.so
LoadModule authz_svn_module modules/mod_authz_svn.so
<Location /pinganfu>
DAV svn
SVNParentPath "/opt/svn/pinganfu"
SVNListParentPath on
AuthType Basic
AuthName "Welcome to Pinganfu Paff SVN"
#AuthzSVNAccessFile "/opt/svn/pinganfu/authz"
AuthUserFile "/opt/svn/pinganfu/passwd"
Require valid-user
</Location>
保持,重新启动apache
/usr/sbin/apachectl restart
如果出现
[Tue Aug 06 20:01:45 2013] [warn] module dav_svn_module is already loaded, skipping
[Tue Aug 06 20:01:45 2013] [warn] module authz_svn_module is already loaded, skipping
说明已经加载过dav_svn_module, authz_svn_module,在httpd.conf文件中删除 LoadModule两项
8:添加svn用户
在第7步中已经配置了AuthUserFile地址,和注释掉的AuthzSVNAccessFile,下面是创建这authz,passwd这两个文件
/usr/bin/htpasswd -cm /opt/svn/pinganfu/passwd admin
执行上面命令创建后,输出密码
vi /opt/svn/pinganfu/authz
9:更改svn库的权限(这边很重要)
将/opt/svn/pinganfu/paff目录改成apache用户,以及apache用户组
chown -R apache:apache paff
chown apache:apache authz
chown apache:apache passwd
chmod -R 777 paff
由于RHEL5中引入了SELinux来加安全控制,因此还需要对该路径进行赋权。(整个路径的目录都要赋权, 如:要访问/opt/svn/pinganfu/paff/,则从/opt开始都要赋权)
如果不赋权,会出现 Can't open file '/opt/svn/pinganfu/paff/db/txn-current-lock': Permission denied 这样的错误
chcon -R -h -t httpd_sys_content_t /opt/svn/pinganfu/paff/
10:访问,添加文件