svn配置

最近一直在安装配置svnmanager,subvertion总结了一些东西,拿来大家共享一下,同时也请大侠指点一下错误!
win2003下安装apache+php+mysql+SvnManager
一 使用软件
EasyCM_0.8.0_Server_Win32(包括Apache-2.0.59、subvertion-1.4.4、TortoiesSVN-1.4.4)
php-5.1.2-Win32 (这里要求5.0以上的版本,我使用的是5.1.2)
mysql-5.0.18-win32
VersionControl_SVN-0.3.0alpha1.tgz (在保证可以上网的前提下,可以通过pear安装)
Svnmanager-0.39
配置环境:Windows 2003 sp1

二、具体步骤
注意事项:安装过程,任何目录和文件名都不要使用空格,不要使用C:\Program Files 而要使用C:\ProgramFiles本次安装目录为C:\EasyCM,C:\PHP5

1. 安装MySQL-5.0
◆ 获得软件:可以登陆http://download.mysql.cn/src/2006/0710/5543.html下载所需的版本;
◆ 安装MySQL5.0.18,双击setup文件,按照提示一步一步执行即可;安装完成后,mysql的服务已自动运行;(注意在安装过程中要求输入root用户的密码)
◆ 运行windows的命令窗口,进入到安装mysql的bin目录,使用下列命令创建一个SvnManager的数据库;
mysql –uroot –p 回车后输入root用户密码;
create database svnmanager; 创建一个数据库;

2. 安装EasyCM
◆ 双击EasyCM_0.8.0_Server_Win32的可执行程序,一直下一步即可;安装完成后会将Apache-2.0.59、subvertion-1.4.4、TortoiesSVN-1.4.4这三个软件都安装到您的计算机上;

3. 安装配置PHP
◆ 获得软件:http://www.php.net/downloads.php是不错的选择;
◆ 将下载的php包解压到C:\php5 的目录下,
拷贝libmysql.dll、php5ts.dll到C:\windows\system32目录下
找到重命名文件php.ini-dist为php.ini,并拷贝到C:\windows目录下
用记事本打开php.ini文件,
修改extension_dir= ”c:\php5\ext”
去掉下列行前面的注释:
  extension = php_mbstring.dll
  extension = php_mysql.dll
  extension = php_gb2.dll
  extension = php_mysqli.dll
  extension = php_pdo.dll
  extension = php_pdo_mysql.dll 如果没有就手动添加,保存退出;
◆ 打开php5的文件夹,执行go-pear.bat这个文件,一直回车,完成后会在此目录下生成一个PEAR_ENV.reg的注册表文件,双击导入注册表信息;
◆ 将VersionControl_SVN-0.3.0alpha1.tgz拷贝到文件夹php5中,在命令行下
pear install –alldeps VersionControl_SVN-0.3.0alpha1.tgz 回车,等待pear为我们安装VersionControl_SVN
◆ 显示install ok的信息,说明安装成功,可以使用pear list命令查看;
4. 修改Apache的配置文件 httpd.conf
◆ 模块化安装配置。在#LoadModule ssl_module modules/mod_ssl.so下面添加LoadModule php5_module "c:/php5/php5apache2.dll"
其中C:/php5为你的php目录;
◆ 去掉LoadModule dav_fs_module modules/mod_dav_fs.so前面的注释符;
◆ 在DirectoryIndex index.html index.html.var后面添加index.php
◆ 找到AddType application/x-gzip .gz .tgz,在下面添加
ScriptAlias /php/ "c:/php5/"
AddType application/x-http-php .php
Action application/x-http-php "/php/php-cgi.exe"
◆ 保存后重新启动Apache

5. 安装svnmanager
◆ 将SvnManager复制到Apache的发布目录,我的Apache缺省的发布目录是C:\Program Files\Apache Group\Apache2\htdocs
◆ 在svnmanager的目录中有两个config的文件,一个是for window 一个是for linux,我们将config.php.win重命名config.php并修改它。
◆ 这里记录着使用Apache验证方式的验证文件路径,需要与httpd.conf中指定的配置文件路径一致
httpd.conf 的配置
<Location /svn/>
  DAV svn
  SVNParentPath "c:\EasyCM\svn_repos" 版本库路径
  SVNListParentPath on
  AuthzSVNAccessFile "c:\EasyCM\auth\svn_rules" 验证文件路径
  Satisfy Any
  Require valid-user
  AuthType Basic
  AuthName "Subversion Repository"
  AuthUserFile "c:\EasyCM\auth\users" 用户文件路径
</Location>
config.php的配置
$svn_repos_loc = "c:\\EasyCM\\svn_repos";
$svn_passwd_file = "c:\\EasyCM\\auth\\users";
$svn_access_file = "c:\\EasyCM\\auth\\svn_rules";
$svnserve_user_file = "c:\\EasyCM\\auth\\svnserve_passwd_file"
◆ 修改连接数据库语句
$dsn = "mysql://root:111111@localhost/svnmanager"; 包括用户名、密码、数据库地址和名称;
◆ 保存 OK!
6. 带开IE输入http://localhost/index.php,您就能看到svnmanager的界面了,第一次登陆需要使用一个默认的临时用户admin 密码 admin,登录后要创建一个管理员帐号,一定要做,当你logout后,临时帐号将被禁用。


下面是关于subvertion的权限管理和对中文子目录的权限管理配置

Windows下Subversion配置管理
准备软件
Subvertion1.4.4+tortoiseSVN1.4.4
运行环境Windows2003+sp1
  sc create svnservice binpath= "\"C:\program files\Subversion\bin\svnserve.exe\" --service -r D:\svnroot" displayname= "SVNService" depend= Tcpip
1,安装svnservice
在Windows NT中(包括Windows XP, Windows 2000, Windows 2003 Server)本身包含了一个安装服务的工具,叫做"Service Control",也就是sc.exe。
例如我的Subversion安装在"D:\Subversion",版本库在"D:\svnroot",而我希望对应的Subversion服务名为svnservice,安装这个svn服务的命令就可以这样写:
  sc create svnservice
  binpath= "D:\Subversion\bin\svnserve.exe --service -r D:\svnroot"
  displayname= "SVNService"
  depend= Tcpip
    
上面的命令分为多行,但在实际执行时应该在一行里。另外,在以前启动svnserve时会使用"-d"选项,也就是守护进程模式,在这里不能使用,会导致服务无法启动。
在命令行窗口执行完这个命令之后,服务还没有启动,你可以继续运行"net start svnservice"启动这个服务,然后使用"net stop svnservice"停止服务。
另外还有两点需要小心处理。首先,如果路径中包括空格,一定要用“\”处理“"”号,例如上面的例子中如果svnserve.exe在“c:\program files\subversion\”中,则命令应该写为“binpath= "\"c:\program files\subversion\bin\svnserve.exe\"”(“”中的内容),整个命令如下,红色部分是改变部分:
  sc create svnservice
  binpath= "\"D:\program files\Subversion\bin\svnserve.exe\" --service -r D:\svnroot"
  displayname= "SVNService"
  depend= Tcpip
    
其次,sc对选项的格式还有要求,例如“depend= Tcpip”不能写为“depend = Tcpip”或“depend=Tcpip”,也就是“=”前不能有空各,而后面必须有空格。
2,删除服务
如果服务安装的有问题,你可能需要删除服务。要删除前面添加的服务,只需要运行 "sc delete svnservice", "svnservice" 就是我们创建服务时使用的名字。
3,配置服务自动启动
默认情况下安装的服务不会随Windows的启动而启动,为了使svn服务能够随Windows启动而启动,需要修改一下"sc create"命令(首先要删除),增加"start= auto"选项:
  sc create svnservice
  binpath= "D:\Subversion\bin\svnserve.exe --service -r D:\svnroot"
  displayname= "SVNService"
  depend= Tcpip
  start= auto
    
你可以在“开始->运行...”中执行"services.msc",然后在界面中修改。
4,Subversion的权限控制
svnserve下的配置文件
D:\SVNROOT\PROJECT1
├─conf
├─dav
├─db
│ ├─revprops
│ ├─revs
│ └─transactions
├─hooks
└─locks
在conf目录下有三个文件authz,passwd,svnserve.conf
其中的“svnserve.conf”是这个版本库的配置文件,当使用svnserve时,这个配置文件决定了使用什么认证和授权文件
password-db = passwd
authz-db = authz
对于管理多个不同的版本库,使用svnserve时,为了管理的方便,应该使用相同的认证和授权文件,所以应该让所有版本库的配置文件svnserve.conf指向同一个password-db和authz-db文件。下面是一个多版本库的目录:

C:\SVNROOT
├─project1
│ ├─conf
│ ├─dav
│ ├─db
│ │ ├─revprops
│ │ ├─revs
│ │ └─transactions
│ ├─hooks
│ └─locks
└─project2
├─conf
├─dav
├─db
│ ├─revprops
│ ├─revs
│ └─transactions
├─hooks
└─locks
Project1和project2是两个不同的版本库,它们有着相同的文件结构,如果要统一管理,我们可以将它们的验证和认证文件指到一个相同的地方;在C:\SVNROOT目录下拷贝authz和passwd,修改两个版本库的svnserve.conf文件,使其验证文件都指到C:\SVNROOT下的authz和passwd,
password-db = ../../passwd
authz-db = ../../authz
修改passwd文件添加新的用户,格式为:用户名=密码 例如:user1=user1
[users]
user1=user1
user2=user2
user3=user3
user4=user4
user5=user5
user6=user6



修改authz文件可以为用户赋予相应的访问权限
[groups]
# 定义组信息
group1 = user1
group2 = user2
group3 = user3
group4 = user4
group5 = user5
group6 = user6
 [/]
# 指定所有的版本库默认只读,root可读写
* = r
root = rw
[project1:/]
# 指定对版本库project1根目录的权限
@group1 = rw #读写
@group2 = r #读
[project1:/trunk]
# 指定对版本库project1的/trunk根目录的权限,
@group2 = rw
@group3 = r
如果希望管理的目录结构中包含有中文目录,使用UltraEdit-32 13.10a将authz文件另存为UTF-8 无 BOM格式,SVN就可以对中文目录进行权限管理了!例如:
[groups]
# harry_and_sally = harry,sally
group1 = user1
group2 = user2
group3 = user3
group4 = user4
group5 = user5
group6 = user6
[/]
* = r
root = rw

 [project1:/]
@group1 = rw
@group2 = r
[project1:/01项目]
@group2 = rw
@group3 = r
[project1:/01项目/会议纪要]
@group3 = rw
@group4 = r
[project1:/03私有分支]
@group4 = rw
@group5 = r
[project2:/]
@group1 = rw
@group2 = r
[project2:/09发布包]
@group2 = rw
@group3 = r
[project2:/09发布包/V1.0]
@group3 = rw
@group4 = r
这样我们根据设定的权限在客户端检入检出的时候就可以针对不同的中文目录进行操作。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值