haixin3036 发表于 2017-1-1 07:49:23

SVN、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 对应不同的端口,而且 
  不能冲突,也不能被其它的服务占用。 
页: [1]
查看完整版本: SVN、Apache和Tomcat 整合