首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 软件管理 > CVS SVN >

SVN、Apache跟Tomcat 整合

2012-06-29 
SVN、Apache和Tomcat 整合??一. 安装 subversion??? 首先安装服务端程序svn-1.4.5-setup.exe??? ?和客户端

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 对应不同的端口,而且?

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


?

热点排行