因为我已经在我的机器上安装了apache,而且apache的安装方法网上一堆,所以我就不介绍怎么安装apache.
先下载最新版本的svn:
http://subversion.tigris.org/servlets/ProjectDocumentList?folderID=8100
选择下载svn-win32-1.5.4.zip,这是一个给apache2.2.x专用的版本
下载后把程序解压到apache的安装目录上(你也可以安装到你想安装的目录下)
我的apache是安装在D:\wapm\local\apach2,把svn解压到D:\wapm\local\svn
先建一个版本库
打开cmd,转到D盘下
\wapm\local\svn\bin\svnadmin create \wapm\local\svn\repository\test --fs-type fsfs
在d:\wapm\local\svn\repository\test下建立一个版本库。另外--fs-type是定义版本库的存储方法。而fsfs是文件存储方式,另还有一种方法是:bdb,这种方法是数据库存储方式,不过网上有人说svn有放弃使用bdb的趋势。
现在开始配置apache了
把文件以下文件从D:\wapm\local\svn\bin复制到D:\wapm\local\apache2\bin,这一步是apach2.2.X才需要这样做的。如果不复制将会出现:Cannot load D:/wapm/local/apache2/modules/mod_dav_svn.so into server
引用
intl3_svn.dll
libdb44.dll
libsvn_delta-1.dll
libsvn_fs-1.dll
libsvn_repos-1.dll
libsvn_subr-1.dll
然后两把复制以下的文件从D:\wapm\local\svn\bin复制到D:\wapm\local\apache2\modules下
引用
mod_dav_svn.so
mod_authz_svn.so
其中mod_dav_svn.so是包含apache应该怎么处理svn的相关操作
而mod_authz_svn.so是包含apache怎么去判断权限的方法
另外需要确保存在于D:\wapm\local\apache2\modules
引用
mod_dav.so
mod_dav_fs.so
对于个人开发可以不用加载mod_authz_svn.so.但对于团队开发最好就加上。管理方便些
开始配置apache处理svn
打开httpd.conf,把以下的代码前的#号除掉,如果没有以下的代码可以自己加上
#LoadModule dav_fs_module modules/mod_dav_fs.so
#LoadModule dav_module modules/mod_dav.so
另外再以下代码下再加上
LoadModule dav_svn_module modules/mod_dav_svn.so
LoadModule authz_svn_module modules/mod_authz_svn.so
到了这里只是把svn需要的程序加载进去,但apache还不知道怎么去处理svn
建立密码访问密码和访问权限
如果是认为不需要访问密码,可以跳过一步
在命令行里运行以下代码
cd \wapm\local\apache2\
bin\htpasswd -c svn Tim
解释一下,第一句是进入到apache2目录里
第二句是使用htpasswd 生成一个apache能读的密码文件。svn是要我要生成的用户密码文件。Tim是用户名
运行完第二句会提示你输入Tim用户的密码。输完后你可以在D:\wapm\local\apache2\下找到一个svn的文件,
如果你需要更多的用户可以运行以下行动相同的命令,但不用再加上“ -c ”具体用法可以通过htpasswd -h来查看
建立访问权限
打开记事本,写入以下代码,保存到 D:\wapm\local\svn\repository\svnaccessfile
[groups]
designer = Tim,Jack
guests = guest
[/]
@designer = rw
@guests = r
#如果游客不需要密码,可以写成" * = r"
需要再加上以下代码
DAV svn
SVNParentPath /wapm/local/svn/repository
SVNListParentPath on
#AuthType Basic
#AuthName "Subversion repositories"
#AuthUserFile /wapm/local/apache2/svn
#AuthzSVNAccessFile /wapm/local/svn/repository/svnaccessfile
#Require valid-user
#SVNPathAuthz on
注:如果需要使用访问权限,把以上代码里的#号去掉
引用
意味着可以通过像这样的URL()来访问Subversion版本库
DAV svn
告诉Apache哪个模块负责服务像那样的URL--在这里就是Subversion模块
SVNListParentPath on
在Subversion 1.3及更高版本中,这个指示器使得Subversion列出由SVNParentPath指定的目录下所有的版本库
SVNParentPath /wapm/local/svn/repository
告诉Subversion在目录D:\SVN下寻找版本库
AuthType Basic
启用基本的验证,比如用户名/密码对
AuthName "Subversion repositories"
当一个验证对话框弹出时,告诉用户这个验证是用来做什么的
AuthUserFile /wapm/local/apache2/svn
指定D:\passwd用为密码文件用来验证用户的用户名及密码
AuthzSVNAccessFile D:\svnaccessfile
指定D:\svnaccessfile来限定各个用户或组在版本库中目录的访问权限
Require valid-user
限定用户只有输入正确的用户名及密码后才能访问这个路径
重启apache
可以通访问到版本库
2008-11-26 svn 访问时出现403问题
引用
今天在公司里再配置svn的访问权限时,当我打开/时提示了我输入密码,但我输入完后竟然显示403错误,
我估计是apache上没有设置好访问权限。所以就增加了以下的代码
Options FollowSymLinks
AllowOverride all
Order allow,deny
Allow from all
Satisfy all
阅读(3171) | 评论(0) | 转发(0) |