之前我们在Mac OS X上搭建了SVN服务器,这一次我们将SVN集成到Mac OS X自带的Apache中。
1、安装SVN
请先安装好SVN并创建一个仓库,具体步骤请参照这里http://xiayong.blog.51cto.com/6292420/1088790。
2、在Apache中安装SVN插件
编辑 /etc/apache2/httpd.conf 这个文件,确保该文件中有以下配置项(若没有,请加上,若注释掉的请取消注释)。注意,编辑此文件需要root权限。
1
2
3
4
|
LoadModule dav_module libexec
/apache2/mod_dav
.so
LoadModule dav_fs_module libexec
/apache2/mod_dav_fs
.so
LoadModule dav_svn_module libexec
/apache2/mod_dav_svn
.so
LoadModule authz_svn_module libexec
/apache2/mod_authz_svn
.so
|
确认 /usr/libexec/apache2/ 目录下有上面配置项里的4个.so文件,mod_dav
.so和
mod_dav_fs
.so这两个文件应该已经存在,
mod_dav_svn
.so和
mod_authz_svn
.so这两个文件需要到svn安装目录去拷贝。我假设你将svn安装在 /opt/subversion/ 下,使用如下命令拷贝文件,如果你的svn不是安装在这里,请到你的目录下面拷贝
1
2
|
$
sudo
cp
/opt/subversion/lib/svn-apache/mod_dav_svn
.so
/usr/libexec/apache2/
$
sudo
cp
/opt/subversion/lib/svn-apache/mod_authz_svn
.so
/usr/libexec/apache2/
|
3、在Apache中配置SVN
创建 /etc/apache2/other/svn.conf 这个文件,注意使用root权限才可以。
在此文件中加入以下配置
1
2
3
4
5
6
7
8
9
10
|
<
Location
/svn>
DAV svn
SVNParentPath /usr/local/data/svn/repositories
SVNListParentPath on
AuthType Basic
AuthName "Subversion repositories"
AuthUserFile /usr/local/data/svn/repositories/passwd
AuthzSVNAccessFile /usr/local/data/svn/repositories/authz
Require valid-user
</
Location
>
|
简单解释一下此配置
SVNParentPath 目录指向我们svn仓库的上一级目录,这个目录下面的每个文件夹都会作为一个仓库。注意:我后来已经将仓库移动到了/usr/local/data/svn/repositories下面,如果大家按照我上一篇博文来配置的SVN仓库,这里的配置请改成你的SVN仓库的地址!
AuthUserFile 该配置指向svn用户配置文件
AuthzSVNAccessFile 该配置指向svn权限配置文件
AuthUserFile 和 AuthzSVNAccessFile这两个配置项建议不要指向原来仓库的配置文件,建议创建新的,SVN仓库中的配置文件只作用于某个仓库,而这里指向的配置文件作用于所有的仓库。
4、创建用户、验证配置
使用htpasswd命令添加用户
1
2
3
4
|
$
sudo
htpasswd -c
/usr/local/data/svn/repositories/passwd
admin
New password:
Re-
type
new password:
Adding password
for
user admin
|
我们成功的添加了一个用户 admin, 并为其初始化了密码,首次添加用户使用了 -c 这个参数,以后可以不加此参数。/usr/local/data/svn/repositories/passwd是在 /etc/apache2/other/svn.conf 文件中AuthUserFile配置项指向的文件。刚添加的admin这个用户就写入了这个文件中。另外请手动在 /usr/local/data/svn/repositories/authz 为此用户配置权限,具体怎么配置权限,请参考我的上一篇博文。
至此,配置基本完成。
使用如下命令重启Apache
1
|
$
sudo
apachectl restart
|
打开浏览器,在地址栏中访问http://localhost/svn/你将看到浏览器弹出了密码框让我们输入用户名密码