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:访问,添加文件