以下内容在CentOS6.0操作系统(64位)下操作。
- CentOS6.0为默认安装。
- 使用yum命令安装httpd和svn。(以下命令都使用root用户执行)
yum install httpd httpd-devel subversion mod_dav_svn mod_auth_mysql - 修改/etc/httpd/conf/httpd.conf,将KeepAlive改为on。该修改可以保持http连接,提高SVN访问性能。
- 在/home目录下创建repository目录,作为SVN版本库的父目录。
- 进入repository目录,使用vi创建文件:authz.conf,用于存放访问权限。
- 在repository目录下使用htpasswd命令创建用户。-c参数表示创建密码文件,之后创建用户不需要带-c参数。
htpasswd -c /home/repository/authfile testuser - 在repository目录下使用使用命令创建库。也可以直接在其他目录下创建,但要指定版本库目录全路径。
svnadmin create /home/repository/test - 对repository目录赋权限,赋给apache用户。
chown -R apache:apache /home/repository/ - 修改/etc/httpd/conf.d/subversion.conf如下内容:
<Location /svn>
DAV svn
SVNParentPath /home/repository
#
# # Limit write permission to list of valid users.
# <LimitExcept GET PROPFIND OPTIONS REPORT>
# # Require SSL connection for password protection.
# # SSLRequireSSL
#
AuthType Basic
AuthName "Authorization SVN"
AuthUserFile /home/repository/authfile
AuthzSVNAccessFile /home/repository/authz.conf
Require valid-user
# </LimitExcept>
</Location> - 使用import命令导入规定的SVN版本库结构。-m参数指定说明文字。
svn import /home/repository/SVN_Model file:///home/repository/test -m “test” - 配置访问权限。修改/home/repository/authz.conf。如下表示testuser拥有test项目的读写权限。
[test:/]
testuser = rw - 启动apache,并关闭防火墙。
service httpd start
/etc/rc.d/init.d/iptables stop - 增加开机自启动apache服务。
chkconfig httpd on - 永久关闭防火墙(重启后生效)。
chkconfig iptables off - 关闭SELINUX,否则会在日志(/etc/httpd/logs/error_log)中报:(13)Permission denied: Could not open *** file,导致无法正常访问SVN,或无法上传文件。关闭SELINUX的方法,修改/etc/selinux/config,把 SELINUX=enforcing 注释掉,并新加一行:
#SELINUX=enforcing
SELINUX=disabled