SCMLife.com

 找回密码
 立即注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

查看: 51201|回复: 49

[原创] 超简单搭建功能全面易用的svn服务端 VisualSVN Server+ApachePasswd

[复制链接]
发表于 2009-2-27 09:37:47 | 显示全部楼层 |阅读模式
超简单搭建功能全面易用的svn服务端 VisualSVN Server+ApachePasswd程序包
2 U& i: F* {( V6 ?* b  w% o/ s
7 n& k  t: F1 g6 l1 Z  s) I安装前准备:  f& _' }% i4 Z8 j, u
VisualSVN-Server-1.6.3.msi:http://www.visualsvn.com/server/download/
1 T: @9 ?. L% L. GApachePasswd客户端修改密码程序包(本版置顶贴 svn使用FAQ里就有的),mod_cgi.so模块(任何版本的apache安装文件里都有)
4 U5 I1 j  k8 S  R4 S4 GVisualSVN-Server对操作系统的要求为:7 g3 ?5 X9 }8 w, a
•        Windows® XP
$ C- v+ v+ Y. J5 q•        Windows 2003 Server : a' R3 C2 z4 a; `0 l, R5 P
•        Microsoft® Windows Vista®
3 t" C4 S, g, e; }1 Z' N6 Z' n4 w•        Windows 2008 Server
- D) T5 y& F  U3 b" B. M4 [   集成组件:Subversion 1.5.5,Apache 2.2.9.9 d: l1 u# Y) L* i! ?- ^
第一步、VisualSVN-Server安装:  t0 c, x% e! U9 u
这个没什么可说的,安装了就知道,一路next,我选用的是https方式,比http的好处大家自己google去吧,客户端唯一与http不一样的就是访问时多了个s,另外如果访问时不想带端口号,可以用https默认的端口号(443),就是80端口相对于http。
; p2 Y' e2 a" x& q第二步、将已有仓库和用户权限信息无缝导入VisualSVN-Server
9 l4 I' z& V# {) O& e5 ]: J网上关于VisualSVN-Server的安装使用说明大部分都是新建仓库、用户和权限的,所以我要有些不同,这也是根据我的实际需要和操作过程来写的。- X! t( \6 N/ S: A/ `
1、        修改VisualSVN-Server仓库路径指向已有仓库路径(这步也可以省略,通过VisualSVN-Server管理界面导入,但是会花费一番时间将你的仓库导入到一个你并不希望的路径,为何不直接指定呢,既不需要浪费时间又保持了原来的仓库路径)
6 r% d+ M8 T7 a* r方法:打开注册表,regedit搜索RepositoriesRoot,你会发现在HKEY-LOCAL-MACHINE ——〉SOFTWARE——〉VisualSVN下,修改RepositoriesRoot的值为你的仓库路径,假设为G:\Repositories\0 f$ @+ P- p- Z4 _& e/ q
2、        修改****\VisualSVN Server\conf\httpd.conf7 D, {; b7 H5 c- u
你会发现这个配置文件比独立安装apache简单多了,只需要修改下段:& ^6 J/ B/ @$ [
<Location /svn/>
1 A: x1 x1 v- x* F: {  DAV svn
) e: @: E- A* T( t( N, C7 w7 |  SVNListParentPath on
8 I3 y- m: S3 ~# ^9 ~' M6 Z' U+ x$ T#仓库路径6 j0 B' I6 B+ y' \8 o) W
  SVNParentPath "G:/Repositories"  . n- v8 F2 w9 k
  SVNIndexXSLT "/svnindex.xsl"
4 }' X  A" F, x- q' y" U6 P5 C  AuthName "Subversion Repositories"
% p; X" M& m% v) `, i  AuthType Basic
9 m' `5 Q. h+ ]$ E1 v  AuthBasicProvider file, }2 ]% _1 X2 k. G4 Y2 h2 O$ {
#用户密码文件# ]4 ]$ y' f  Y9 R
  AuthUserFile "G:/Repositories/htpasswd"  
$ b; o6 t+ f0 F$ E' H  J#权限文件* s* i( X' g) L$ X7 u: L9 q9 K/ p
  AuthzSVNAccessFile "G:/Repositories/authz"  
" y4 g( k9 t; t( Q7 `  require valid-user7 c- S. c% Y1 z9 U7 m/ C; M. z/ s
</Location>
% s, ~0 w, _0 E8 ]3 L& F" u% V保存配置文件,在服务重新启动VisualSVN Server,打开Manager,你会发现仓库、用户、权限都有了,看着好开心啊,比svnmanager方便多了。2 v" T5 t  t" P8 {1 E/ j
第三步:实现客户端修改用户密码
( P1 a* n- K5 [, M* e因为VisualSVN也提供收费的客户端软件,在客户端软件里有修改密码功能,但是我们大部分用的还是TortoiseSVN啊,所以这个得自己动手了。大家都知道ApachePasswd客户端修改密码程序包,集成了Apache Server,肯定可以用的。; k7 {+ b% \+ J
步骤如下:) D5 f+ j1 ^) X0 M
A)        将mod_cgi.so copy到****\VisualSVN Server\bin目录下,这是cgi得以执行的必须包
2 z# x( A3 J% a; L, |/ qB)        在VisualSVN Server下创建cgi-bin目录(VisualSVN Server真是做到十分的精简,连这个目录都删掉了),将ApachePasswd程序包释放到该目录下
1 E2 w7 R! k9 w0 J3 ~. r  _C)        修改ApachePasswd.cgi.ini里的用户信息文件路径4 i$ q9 w* k9 t9 M( @
D)        配置****\VisualSVN Server\conf\httpd-custom.conf(这个客户个性化配置文件非常好)
6 Y  ~' \2 \3 J原来是空白的,增加
$ H" h, Y- W% B, w  t: W2 uLoadModule cgi_module bin/mod_cgi.so
% E0 r/ W+ O% E5 n( @1 ^LoadModule alias_module bin/mod_alias.so
+ Y9 F, T. M5 e7 w; x* y. N<IfModule alias_module>2 i$ B6 g" j: L7 Y, Z
    ScriptAlias /cgi-bin/ "E:/Program Files/VisualSVN Server/cgi-bin/"
7 D0 o  d8 M3 S& G7 ?# s</IfModule>/ \- K2 G, {8 w% P. G( ^& n8 u
好了,重新启动VisualSVN Server。测试一下,打开一个页面,输入https://IP/cgi-bin/ApachePasswd.cgi,出现修改密码页面,尽管还是那么朴实无华,但很亲切。& g; K. s+ x+ E- X; l8 G

, ^& g. U  y& L) ~( ^" K( T[ 本帖最后由 千寻 于 2009-2-27 09:42 编辑 ]

评分

参与人数 1威望 +2 金钱 +2 收起 理由
go2cxg + 2 + 2

查看全部评分

本帖被以下淘专辑推荐:

  • · SVN|主题: 3, 订阅: 0
发表于 2009-3-3 17:43:25 | 显示全部楼层
ApachePasswd。。。我找了好久。。。
回复 支持 反对

使用道具 举报

发表于 2009-3-24 11:40:30 | 显示全部楼层
先留个脚印,有时间试一试
回复 支持 反对

使用道具 举报

发表于 2009-4-9 16:10:03 | 显示全部楼层
想知道:cgi-ini 文件夹里到底有什么文件?最好能列出来,因为我需要这个,谢谢
回复 支持 反对

使用道具 举报

发表于 2009-4-10 11:17:22 | 显示全部楼层
不错,正需要改密码的这个~
回复 支持 反对

使用道具 举报

发表于 2009-4-10 14:54:55 | 显示全部楼层

帮我找下错误在哪里

我试拉下,无法访问http://ip/cgi-bin/svnpass.cgi,请大家来帮忙,我已经弄拉很久这东西拉,郁闷中呢) A! N/ K: V; M' y( [9 g7 Z
; a& b: p  k5 O' H$ W+ v, l
错误提示:* o! a, i% d% |" U. s9 v5 }1 L
Internal Server Error
: J* G  m/ l/ [# t% v; x/ BThe server encountered an internal error or misconfiguration and was unable to complete your request.: Y* H0 j) }( t5 T: m

9 `3 R/ _/ B. E. S一、现把httpd.conf贴出来:
& R5 \; r: @+ q# ]3 X..& E# I) ]1 ~  F3 Y
Listen "80"9 M# v5 f+ f; E6 ^8 R' U: \% M

7 E% ^6 G) T5 a) d  PLoadModule auth_basic_module bin/mod_auth_basic.so, b8 M9 [" W  r1 R
LoadModule authn_file_module bin/mod_authn_file.so: Q/ J: j& R0 U
LoadModule authn_visualsvn_module bin/mod_authnz_visualsvn.so$ s) ?* h7 H9 D! {* x% j
LoadModule authz_svn_module bin/mod_authz_svn.so& f7 k" O1 }* |9 ^$ S
$ m, P/ P# U2 G; \0 X: R/ u" H
LoadModule dir_module bin/mod_dir.so8 m8 O; p( v, q: Y1 u" E6 R
LoadModule deflate_module bin/mod_deflate.so5 x3 i9 Q9 p) q& e/ l
LoadModule mime_module bin/mod_mime.so
8 b% M  b/ p  ?8 U. b: DLoadModule setenvif_module bin/mod_setenvif.so
. W# L. f9 e+ p
: b* x+ F- f' o( f, xLoadModule dav_module bin/mod_dav.so
6 r* x1 y6 w8 e0 o- Y9 TLoadModule dav_svn_module bin/mod_dav_svn.so
0 ~) Z; n* }! c% u* R5 I* k# LoadModule ssl_module bin/mod_ssl.so
  J7 k5 q* f9 W: V& w1 V- P4 W5 Z..
  r) |; C1 t) J+ f0 r+ ]<Location /svn/>
, Q: N* w4 r; ]! u2 I  DAV svn2 o  m& T: p! P. D2 ?7 E2 h

* f0 r4 l- B: I; k  SVNListParentPath on2 d* l1 O; Y5 g( _3 g
  SVNParentPath "D:/svn/"
& ]0 [: Z; Z5 L. M. E8 w0 q( o  SVNIndexXSLT "/svnindex.xsl"
  N6 E; m7 B" E% I4 M
) n" z5 J* T6 Y# w6 E  AuthName "Subversion Repositories"
6 x$ x! q, M0 N% u( H4 [9 u  AuthType Basic- x# ]" {# h* W; w$ r
  AuthBasicProvider file# W9 s) n2 Y1 [4 h: M: P
  AuthUserFile D:/svn/htpasswd
/ M  {# [9 l/ L& m$ _- l  AuthzSVNAccessFile D:/svn/authz
# S) Y$ d# d; u, y* I* w5 Z  require valid-user
( I0 p8 X, ^: X2 Z& @) Y</Location>- D: j* @8 S2 X9 [# |& \
..
2 @# A# O1 ?5 `, c6 Q... ~; A2 @: i0 q: N/ s# Y  S( T1 Y
Include conf/httpd-custom.conf0 S2 ?' m, v0 o, V# f

; K3 ]2 J# J  s! m二、另外将:httpd-custom.conf 贴出:% P. N# Q- ]" P* J
LoadModule cgi_module bin/mod_cgi.so
# Y' ?8 O, q0 k6 g5 c, N* tLoadModule alias_module bin/mod_alias.so5 G. J# h4 y" V9 ]: `: r8 v
ScriptAlias /cgi-bin/ "C:/Program Files/VisualSVN Server/cgi-bin/". r9 U5 L$ [  L) z, W1 l  e

+ U6 h, u" v6 K4 }" y& C) G' @#以下这段我不知道倒底要不要?* Y2 \6 L- k/ a. U
#<Directory "C:/Program Files/VisualSVN Server/cgi-bin">
( N/ y' K  H3 Z   # AllowOverride None. U$ q- g3 B) W% \1 o
   # Options None
8 z* b4 i& p: C" }   # Order allow,deny: a' @$ C. s1 B+ [% c
   # Allow from all5 r$ C8 k- e& ]( E
#</Directory>
  Y. H3 l- c) B#
+ g# y1 g+ q. ]3 G& t- e7 F. t% d

- h) R* Q$ U1 D/ F0 `2 ~三、另外将svnpass.ini 贴出0 `7 C, f$ \5 A
[path]. U2 z  n8 }. _4 V, h) |
authuserfile=D:\svn\htpasswd' A* X' ?* `% s
#logfile=C:\Program Files\VisualSVN Server\cgi-bin\svnpass.log9 ]! F7 R" o2 t, q
[setup]. r; }) b# u. P5 M
passminlen=1
9 Q2 u5 u* E  f- i8 h[html]
3 {1 C# _/ {' vtitle=修改SubVersion密码
  l$ Z) ^6 X! P) G4 y$ Fdescription=修改SubVersion密码5 W2 [& h6 d4 W6 b& ?2 r
yourname = 用户名. P- _5 C8 X# }+ s
oldpasswd = 旧密码
( v( d3 K3 k$ b1 f) l) \& F5 ^newpasswd1 = 新密码/ U6 z# d) S4 {$ ^1 O4 u- A
newpasswd2 = 验证新密码
! b3 E: o( ]: Obtn_change = 修 改
) c6 A7 C4 P, u9 Ebtn_reset = 重 置
" u2 d2 q" D( R: q" u- T
. O; W9 k* l+ c% [( wchangepassok=成功修改密码
' J, n% s" l" bchangepassfailed=修改密码失败- Y( P6 N* x) t7 \, x; x. j' l% ?' W
oldpasserror=旧密码错误6 z$ B. O6 s: c# I* ~; C
servererror=服务器错误
: d& J7 Q( o8 i+ X  f+ s* u- @passmustgreater=密码位数必须大于7 J: S- S- K# _6 [; I1 P
twopassnotmatched=两密码不一致
7 K' i& J0 S1 k; t* D3 C4 ^entername=请输入用户名
% C4 n0 q& b, t( C) W4 \back=返回
回复 支持 反对

使用道具 举报

 楼主| 发表于 2009-4-10 16:05:45 | 显示全部楼层
1、楼上,首先确保你的svn webserver可以访问6 B6 ^0 u  I% R- C# g+ ?5 c
2、红色注明那段我没写- i. F# z( ]3 {
3、确定引用的路径下都有相应的文件,
* y0 J% \9 E( P3 Z/ zmod_cgi.so,
, X7 R$ C4 {1 v4 t& K" q" D; x2 [mod_alias.so: k- a( C' I( O3 }# N
其他从楼上提供的信息里我也看不出什么错误了
) S0 H9 j! t6 r6 ?  }/ f; f, D4 X6 }* \6 B
+ [: F) a! B. I+ u- J3 }8 f+ G
% C( e3 P1 ^% M6 I) l
. e/ {8 g4 [5 M0 V5 [

5 O  K0 O+ r) f" o1 o转载请注明源自www.SCMLife.com,请保留版权. 本贴地址:http://bbs.scmlife.com/viewthread.php?tid=17930
回复 支持 反对

使用道具 举报

发表于 2009-4-10 16:31:11 | 显示全部楼层
我把红色那段给删除,一样是那个错误提示,另外我的其他设置见下图:该copy的文件我都copy过去拉,VISUALSVN SERVER 可以正常启动,并且我用http://localhost/svn 是可以正常访问的.不知道谁能帮我解决cgi-bin 无法访问的问题呢?/ W. i* l5 ?3 N7 }% z6 W; `1 Z

. s" a: [+ n! Z5 r) E6 L2 E

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
回复 支持 反对

使用道具 举报

 楼主| 发表于 2009-4-13 11:29:44 | 显示全部楼层
我看了一下我的cgi-bin目录下的文件,文件名分别是:
- [# H& x. b  O9 FApachePasswd.cgi和配置文件ApachePasswd.cgi.ini,
0 [* r. @  }1 \( \7 Q而你的配置文件是svnpass.ini ,是不是这个问题呢
回复 支持 反对

使用道具 举报

发表于 2009-4-13 13:31:41 | 显示全部楼层
我不认为是文件名的问题,我把两个文件名改成你的那种,是一样的错误提示:8 k: y$ V% z6 {8 @
Internal Server Error, [/ W& R) b! Z) B
The server encountered an internal error or misconfiguration and was unable to complete your request.
7 ~4 |( E* b9 T0 \/ [
- k2 D! N0 ~9 y8 B- _Please contact the server administrator, [no address given] and inform them of the time the error occurred, and anything you might have done that may have caused the error.: g0 ^  e- b" p! p& |2 X' e
& U4 b! w3 x. W5 v
另外我访问:"http://localhost/cgi-bin/" 总是提示:
2 h- `. z4 }3 ~7 v+ }5 DNot Found
! J( u  B, `" [) wThe requested URL /cgi-bin was not found on this server.

* C* F% n+ {  l9 C/ Y
0 F2 x7 G3 S6 @/ X! I. ?我猜cgi那块配置有问题,但我又看不懂,能否帮我看看这错误提示.
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

关闭

SCMLife推荐上一条 /5 下一条

QQ|小黑屋|手机版|无图版|SCMLife.com ( 京ICP备06056490号-1 )

GMT+8, 2020-4-9 23:14 , Processed in 0.074533 second(s), 10 queries , Gzip On, MemCache On.

Powered by SCMLife X3.4 Licensed

© 2001-2017 JoyShare.

快速回复 返回顶部 返回列表