apache+svn配置小记

 费话就不多说了,直接来配置代码说话,在安装好最新的subversion server后,就已经将apache与svn集成好了,我们要做了就是直接创建代码库,然后将代码库配置到apche中去。

首先要注意httpd.conf里面是否加载了svn模块 :

LoadModule dav_module         modules/mod_dav.so
#LoadModule dav_svn_module     modules/mod_dav_svn.so

#SVN
LoadModule dav_svn_module modules/mod_dav_svn.so
LoadModule authz_svn_module modules/mod_authz_svn.so

 

 

1.创建代码库,我将代码库创建在D:\svn_repository,命令:svnadmin create fenpig2

D:\SVN_REPOSITORY-------------------------------------(这个目录下的子目录用来存放各个代码仓库)
│  authz-----------------------------------------(svn用户密码文件)
│  passwd--------------------------------------(svn用户组文件)
│  svn-auth-------------------------------------(apache用户密码文件)
│  svn-group------------------------------------(apache用户组文件)
│
└─fenpig2-----------------------------------------(这里是一个仓库)
    │  README.txt
    │  format
    │  
    ├─locks
    │      db.lock
    │      db-logs.lock
    │      
    ├─hooks
    │      start-commit.tmpl
    │      pre-commit.tmpl
    │      pre-revprop-change.tmpl
    │      pre-lock.tmpl
    │      pre-unlock.tmpl
    │      post-commit.tmpl
    │      post-lock.tmpl
    │      post-unlock.tmpl
    │      post-revprop-change.tmpl
    │      
    ├─conf
    │      svnserve.conf
    │      
    └─db
        │  fs-type
        │  current
        │  write-lock
        │  uuid
        │  fsfs.conf
        │  rep-cache.db
        │  min-unpacked-rev
        │  txn-current
        │  txn-current-lock
        │  format
        │  
        ├─revs
        │  └─0
        │          0
        │          
        ├─revprops
        │  └─0
        │          0
        │          
        ├─transactions
        └─txn-protorevs

说明一下,我配置的是多库的方式,在D:\SVN_REPOSITORY 目录下面,可以放多个项目库,这里我只有一个fenpig2库,并且我将fenpig2下面的认证文件指向了顶层的D:\SVN_REPOSITORY 下面的认证文件authz和passwd中。

auth内容如下 :

[aliases]

[groups]
programer = peirenlei,hack988

[/]
@programer = r

[fenpig2:/]
@programer = rw

 

pass内容如下:

[users]
peirenlei = 123123
hack988 = 321321

 

 

2.配置apache。

        首先创建用户:

htpasswd.exe -c D:\svn_repository\svn-auth peirenlei 123123

htpasswd.exe  D:\svn_repository\svn-auth hack988  321321

 这里创建了两个用户peirenlei,hack988,千万要注意:这里的用户名密码都要和svn中的认证文件中的用户名密码一定要相同

 

        然后创建用户组文件,直接用记事本编辑即可,这里组名为programer ,保存在 D:/svn_repository/svn-group,这个组名也要与svn认证文件中的组的名字相同:

programer = peirenlei,hack988

 

        最后修改httpd.conf文件,在最下面加入:

<Location /svn/>
   DAV svn
   AllowOverride none
   SVNListParentPath on
   SVNParentPath d:/svn_repository
   
   AuthType Basic
   AuthName "fenpig Subversion repositories"
   AuthGroupFile D:/svn_repository/svn-group
   AuthUserFile D:/svn_repository/svn-auth
   AuthzSVNAccessFile D:/svn_repository/authz
   Require valid-user

</Location>

  注意上面的 Location /svn/  的写法,最后面要叫个/,否则apache可能会报路径不相符的错误 。

 

 

好了,到此为至,所有配置都已完成,重启apache,输入http://localhost/svn ,会跳出输入用户名和密码的窗口,输入正确的用户名密码,即可看到我们的仓库了。

 

 

最后说明一下,在用subclipse做java开发web项目的时候,classes文件夹是要注意的地方,我的步骤如下:

1. 按branches,tags,trunk创建项目库目录结构, 将完整的项目拷贝至"trunk/项目名称" 下.

2. 提交 branches,tags,trunk 至项目库。

3. 用subclipse从项目库子路径"trunk/项目名称"检出项目。

4. 用TortoiseSVN工具,将WEB-INFO/classes文件夹加入忽略列表。

5. 将第四步中的忽略动作更新至项目库。

这样就可以进行日常的修改提交工作了。(注:如果不这样,会因classes文件夹产生错误)

 

你可能感兴趣的:(apache,Web,SVN,cache,subversion)