SVN、Apache和Tomcat 整合

本文详述了SVN的安装步骤、建立Repository的方法、服务端与客户端配置流程,以及与Eclipse、Apache和Tomcat的整合技巧,提供从入门到进阶的全面指南。

 

 一. 安装 subversion 

   首先安装服务端程序svn-1.4.5-setup.exe 

    和客户端程序 TortoiseSVN-1.4.5.10425-win32-svn-1.4.5.msi (是两个网站)。subversion 

在服 务器端客户端都需要安装,TortoiseSVN 只要在客户端安装就行。TortoiseSVN 的语言 

包下载和TortoiseSVN 的下载都在其官网的 同一页 

如果使用了eclipse 并且用插件的话,则可以不用TortoiseSVN。 

 

二.建立Repository   (保存文档各个版本的数据库),必须建立在服务端 

1)在服务器端建立一个空目录,比如“d:\svn\project1”。 

2 )进入dos 

3)svnadmin create --fs-type bdb d:\svn\project1 

  // svnadmin 是exe 程序,安装时已经自动加到系统路径了。 

  // 这里选择了 Berkeley Database   (BDB )方式做为版本库的类型 

  // 也可用TortoiseSVN 这个客户端工具实现创建 

  // d:\svn 是版本库的位置,也可以取别的名字,别的路径,一个版本库可以包含多个项目 

  // project1 是某个项目名称, 

 

三.在服务端配置Repository,主要的目的是控制访问权限和添加用户。 

1)打开d:\svn\project1\conf\svnserve.conf 

2 )把以下行前的#去掉,保存 

  # anon-access = read 

  # auth-access = write 

  # password-db = passwd 

3)打开d:\svn\project1\conf\passwd 文件 

4 )末尾加一行 

  xy = 1 

  保存 

  // xy 是用户名,1 是密码,自行替换 

5)多个用户就加多行 

 

四.在服务端启动 subversion 服务器。 

1)进入dos 

2 )svnserve.exe -d -r d:\svn 

3)服务启动后,在服务器端的3690 端口监听客户端的连接请求。 

4 )参数的作用是:当在客户端用“svn://xxx/project1”(xxx  可以是服务器端主机名或 ip)访问 

服务器的Repository 时, 

  服务器会知道你要访问的Repository 路径是“d:\svn\project1”。 

5)如果当我有两个完全不相干的项目要进行版本控制时,可以再建立一个空目录 

 “d:\svn\Project2”,并在其中再建立一个Repository, 

  此时客户端就可以用“svn: //xxx/project2”访问“C:\SVNProjects\Project2”下的Repository。 

6)如果想要注册为window 服务, 

  进入dos, 

  sc  create  svnservice  binpath=  "D:\Program  Files\Subversion\bin\svnserve.exe  --service  -r 

d:\svn" displayname= "SVNService" depend= Tcpip 

  // 请务必在一行内输入 

  // SVNService 是服务名,也可以替换 

  // D:\Program Files\Subversion\ 是服务器安装svn 的路径,要替换 

7)如果想注销window 服务 

  进入dos 

  sc delete SVNService 

 

五、在客户端安装eclipse 的svn 插件,安装好后几乎无需任何配置 

   在线安装方式的url 是http://subclipse.tigris.org/update 

 

六、在客户端,首先确保服务打开,打开视图,window -> show view -> other -> svn -> svn 

资源库 

   右键单击,新建->资源库位置-> svn://localhost/project1,出现一个资源库, 

   右键单击,取出为->作为新项目取出,并用向导配置。选yes 

  java->java 项目,next->finish. 

 

七、在客户端在eclipse 的左边视图项目根目录下加文件夹,加文件,然后 

   在eclipse 的左边视图的文件夹或根路径下提交,更新。(右键单击) 

   所有的操作都在 eclipse 的界面内完成,工作效率极高。比TortoiseSVN 方便, 

   注意 eclipse 的配置文件不要提交上去,就是建立eclipse 项目时会自动建立在项目文件夹 

里的两三个文件。 

   因为是“作为新项目取出”。 

 

SVN 与Apache 整合(和上面的配置没关系) 

先安装apache_2.0.63-win32-x86-no_ssl.msi 

 打开http://loccalhost,如果能出现内容,那你的Apache就安装成功了。 

运行 Subversion 安装程序,如果安装程序能够识别你已经安装了 Apache,那么你的安装基 

本上就OK 了。如果它不能(我的机器未能识别),那么你需要做以下手工配置: 

   注:如果你先安装 Apache ,再安装 Subversion ,正常情况下下面的工作(2.3                        配置 

前)Subversion 安装程序已经帮你完成了使用资源管理器,进入 Sibversion 的安装目录(通常 

为 c:\program files\Subversion),找到文件httpd/mod_dav_svn.so 和 mod_authz_svn.so,将它 

们拷贝到Apache 的modules  目录(通常为c:\program files\apache group\apache2\modules)。 

从Subversion的安装目录拷贝文件libdb43.dll到Apache的modules 目录。 

 

使 用 如 记 事 本 之 类 的 文 本 编 辑 器 编 辑 Apache                的 配 置 文 件 (  通 常 为 

c:\program files\apache group\apache2\conf\httd.conf),修改以下内容: 

 

去掉以下行的注释(将开头的#删除): 

 

#LoadModule dav_fs_module modules/mod_dav_fs.so 

#LoadModule dav_module modules/mod_dav.so 

 

在LoadModule节的最后添加以下两行: 

LoadModule dav_svn_module modules/mod_dav_svn.so 

LoadModule authz_svn_module modules/mod_authz_svn.so 

在配置文件的最后添加下面这些行: 

 

<Location /svn> 

DAV svn 

SVNParentPath D:\SVN 

AuthType Basic 

AuthName "Subversion repositories" 

AuthUserFile D:\passwd 

#AuthzSVNAccessFile D:\svnaccessfile 

Require valid-user 

</Location> 

 

配置表示:你所有的版本库将位于D:\SVN 目录下,要访问你的版本库可以使用这样的 

URL:http://YourIP/svn/,访问权限将由passwd文件中的用户名/密码来限制。 

详细说明如下: 

--------------------------------------------------------------------------- 

<Location /svn> 

意味着可以通过像这样的URL(http://MyServer/svn)来访问Subversion版本库 

DAV svn 

告诉Apache哪个模块负责服务像那样的URL--在这里就是Subversion模块 

SVNListParentPath on 

在Subversion 1.3  及更高版本中,这个指示器使得Subversion列出由SVNParentPath指定的目 

录下所有的版本库 

SVNParentPath D:\SVN 

告诉Subversion在目录D:\SVN下寻找版本库 #(修改成你自己的目录) 

AuthType Basic 

启用基本的验证,比如用户名/密码 

AuthName "Subversion repositories" 

当一个验证对话框弹出时,告诉用户这个验证是用来做什么的 

AuthUserFile D:\passwd     #(密码文件,不是文件夹哦) 

指定D:\passwd用为密码文件用来验证用户的用户名及密码 

AuthzSVNAccessFile D:\svnaccessfile 

指定D:\svnaccessfile来限定各个用户或组在版本库中目录的访问权限 

Require valid-user 

限定用户只有输入正确的用户名及密码后才能访问这个路径 

----------------------------------------------------------------------------- 

创建passwd文件 

打开命令行(DOS窗口CMD), 

将当前目录切换到apache2  目录(通常为c:\program files\apache group\apache2\bin), 

输入命令: 

htpasswd.exe -c passwd  username 

Automatically using MD5 format. 

New password: ******  (输入密码) 

Re-type new password: ****** 

Adding password for user  username 

copy passwd d:\   (Httpd.conf 中设定的是在D:) 

重启Apache服务。 

重启后打开http://YourIP/svn/ 输入密码后,还是出错(因为还没有建立版本库) 

Forbidden 

You don't have permission to access /svn on this server. 

-------------------------------------------------------------------------------- 

Apache/2.0.59 (Win32) SVN/1.4.2 DAV/2 Server at 192.168.18.8 Port 80 

 (3)TortoiseSVN 

 按提示安装完成,需重启电脑 

 3.SVN项目设置 

 (1).打开资源管理器,在D:\SVN 目录下新建WWW 目录 

 (2).在WWW文件夹上右击TortoiseSVN--->Create repository here... 

  (也可以通过命令的方式:到SVN的安装BIN 目录。运行:svnadmin create D:\svn\www 

  d:\svn 目录需先建好,要不会出错: 

 svnadmin: 档案库创建失败 

 svnadmin: 无法创建最上层目录 

 (3).然后选择Native filesystem(FSFS) 

 (4).到项目文件夹上,右击TortoiseSVN-->import... 

   在URL of repository:中输入http://YourIP/svn/www 

 (5).项目成员,可在自己机上新建一个空的项目文件夹.右击SVN checkout... 

  在提示的用户名和密码对话框中输入服务端配置的用户名和密码;然后点击OK;后面对 

话框中即会显示逐个加入的文件和目录信息,最后一条显示“Completed  At Version 1”。 

  如果成功,可以在本地目录下看到相应的代码文件。选中文件或目录,可以进行 

“SVN Update” (从服务器更新版本)和“Svn Commit”          (提交更改到服务器)操作。 

 

 Apache 与Tomcat 整合 

最近,需要用到apache 和tomcat 整合,以便可以通过apache web server 访问jsp 页面和servlet。 

照着网上很多网友的帖子都没有做出来,于是只好求助 apache  的官方网站了,按照相关文 

档的说明,自己琢磨着做出来了一个。 

一、系统环境: 

  Windows XP 2002 SP2 

 

二、所需软件: 

  apache_2.0.63-win32-x86-no_ssl.msi 

  mod_jk-1.2.27-httpd-2.0.63.so 

  apache-tomcat-6.0.23.exe 

  jdk-1_5_0-windows-i586.exe 。 

 

三、准备工作: 

  在系统上安装并配置好jdk 、apache 和tomcat          (此过程略)。 

 

四、整合步骤: 

  1、将mod_jk-1.2.27-httpd-2.0.63.so 改名为mod_jk.so,然后复制到/apache-directory/modules 

目录下。改名的原因不清楚,参照apache 官方文档做的。 

  2、在httpd.conf 文件的最后加上如下指令: 

    Include conf/jk.conf 

该指令用来把外部配置文件导入httpd.conf 中。 

  3、在/apache-directory/conf 中新建jk.conf 文件,并添加如下内容: 

    #加载mod_jk 模块,以便让 apache 支持 servlet/jsp 

    LoadModule jk_module modules/mod_jk.so 

    #定义workers,mod_jk 会在指定的路径下寻找workers.properties 文件 

     JkWorkersFile conf/workers.properties 

     #指定mod_jk  日志文件,这个文件由系统自动生成 

     JkLogFile logs/mod_jk.log 

    #指定日志级别为info,日志会包含标准mod_jk 行为(默认) 

     JkLogLevel info 

     #指定日志格式 

     JkLogStampFormat "[%a %b %d %H:%M:%S %Y] " 

     #下面这两行没弄清楚是什么作用,所以暂时先注释掉了 

     #jk1.2 Documentation  中也有说明 

     #JkOptions +ForwardKeySize +ForwardURICompat -ForwardDirectories 

     #JkRequestLogFormat "%w %V %T" 

    #下面两行指令用来指派URLs 到tomcat,下面还会有详细说明 

     JkMount /* ajp13 

     JkMount /*.jsp ajp13 

   4、在/apache-directory/conf 下新建workers.properties 文件,并添加如下内容: 

    workers.tomcat_home=C:\Tomcat #指定Tomcat 路径 

     workers.java_home=C:\Java\jdk1.5.0 #指定j2sdk  路径 

     ps=\ #这一行没弄清楚是什么作用 

     worker.list=ajp13 #worker 列表,一般用ajp13 

     worker.ajp13.port=8009 #端口,可以改成别的没被占用的端口 

     worker.ajp13.host=localhost #主机名 

     worker.ajp13.type=ajp13 #若使用ajp13,这两行 

     worker.ajp13.lbfactor=1 #都不用改 

   5、完成以上步骤后,启动 apache 和 tomcat 容器,就可以试验是否整合成功了,前提是 

jsp  工程要放在/tomcat-directory/webapps 下。如果想要把jsp  工程放在 apache 下,就要修改 

/tomcat-directory/conf/server.xml 文件,将<Host>元素的appBase 属性值改为和apache 配置文 

件中的documentRoot 一样就可以了。如果想要把jsp  工程放在apache 和tomcat 外部,就要 

同时修改两个配置文件apache 的httpd.conf 和tomcat 的server.xml。 

 

五、几点说明: 

  1、mod_jk 模块是 apache 出的一个工具,用来让apache web server 作为standalone server 

支持 servlet/jsp。 

  2、一个tomcat   worker 就是一个等待执行 servlet 的tomcat 实例。Apache   web   server 会将 

请求转发到worker 来运行。可以有多个worker,在workers.properties 文件中配置。 

  3、ajp13 不是随便起的worker 名,它是Apache JServ Protocol version1.3 的缩写。由于现 

在还没有关于这个协议如何工作的文档,所以也不好解释这个东西,只要知道 tomcat5.5 支 

持,而且可以作为tomcat worker 就行了。 

  4、再解释一下jk.conf 文件的最后两行。我们通常在tomcat 中运行一个jsp  文件,要在浏 

览器的地址栏中输入 

     http://localhost:8080/projectName/example.jsp 

JkMount /*.jsp ajp13 的作用就是指定访问apache web server 中的jsp  文件的URL 格式,相应 

的URL 为 

     http://localhost/projectName/example.jsp 

在tomcat 中运行一个servlet,要输入 

     http://localhost:8080/projectName/servletExample 

在apache 中相应的URL 就是 

     http://localhost/projectName/servletExample 

说到底,它和你的web 工程中的web.xml 中关于servlet URL 的设置是一样的。 

   5、显然,80 和 8080 端口已经做好了映射,apache 把 servlet/jsp 请求通过 8009 端口(在 

workers.properties 中配置)转给8009 对应的tomcat worker 处理。如果配置tomcat 集群的话, 

就要在workers.properties 中配置多个tomcat worker 了,每个worker 对应不同的端口,而且 

不能冲突,也不能被其它的服务占用。 


 

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值