<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>杰趣网 &#187; Apache</title>
	<atom:link href="http://www.jackq.com/tag/apache/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.jackq.com</link>
	<description>IT info. Experience Sharing.</description>
	<lastBuildDate>Tue, 31 Jan 2012 09:48:49 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.2</generator>
		<item>
		<title>Windows平台Apache和Subversion集成安装与配置</title>
		<link>http://www.jackq.com/windows-apache-subversion-svn-install/</link>
		<comments>http://www.jackq.com/windows-apache-subversion-svn-install/#comments</comments>
		<pubDate>Sat, 09 Jan 2010 07:18:22 +0000</pubDate>
		<dc:creator>Jack</dc:creator>
				<category><![CDATA[技术应用]]></category>
		<category><![CDATA[Apache]]></category>
		<category><![CDATA[Subversion]]></category>
		<category><![CDATA[Windows]]></category>

		<guid isPermaLink="false">http://www.jackq.com/?p=13</guid>
		<description><![CDATA[Subversion （SVN） 相关介绍请 Google &#38; Baidu 一、下载 1,apache_2.0.63-win32-x86-no_ssl.msi 下载:http://apache.mirror.phpchina.com/httpd/binaries/win32/apache_2.0.63-win32-x86-no_ssl.msi 2,svn-1.4.5-setup.exe 下载地址:http://subversion.tigris.org/files/documents/15/39559/svn-1.4.5-setup.exe 好了,准备的两个软件都下载下来以后,就可以开始安装了. 二、安装 Subversion提供了5种访问版本库的方式： 1)直接版本库访问。客户端使用file:///打头的URL访问存储在本地磁盘上的版本库。这种情况下几乎不需要其它的配置即可访问，缺陷是版本库必须在本地磁盘上，而且没有用户授权管理。 2)svnserve。在Subversion的手册中介绍：这是一个轻型的服务器，可以同客户端通过在TCP/IP基础上的自定义有状态协议通信。它默认使用3690端口并采用自定义的协议来提供服务，客户端使用svn://打头的URL访问服务器上的资源。 3)Apache+mod_dav_svn。这种方式更灵活（例如无须开放额外的端口），但它的配置会复杂一些。Subversion通过Apache使用WebDAV协议来提供服务，客户端使用标准的http://打头的URL访问服务器上的资源。 4)svnserve+SSH。在第二种方式的基础上增加了SSH封装以提高安全性，客户端使用svn+ssh://打头的URL访问服务器资源。 5)Apache+mod_dav_svn+SSL。在第三种方式的基础上增加了SSL加密，客户端使用https://打头的URL访问服务器上的资源。 关于各种访问方式更详细的信息请查阅Subversion的手册，本文暂时只第三种方式 1.Apache的安装： 首先安装apache,一般来说直接点下一步就可以了,在设置domain以及host的时候,设置为localhost就可以了,Email你可以填你自己的Email,也可以随便填一个.安装apache要注意的是,你的电脑上80端口不能被占用,否则你的http服务是启动不起来的。装好apache以后,你可以在浏览器的地址栏输入http://localhost看看,是否安装成功,如果安装成功的话,这个时候浏览器里面应该是可以看到一个页面的. 2.安装SVN 安装svn-1.4.5-setup.exe,也很简单,一步一步点下步就可以了,在安装的过程中,它会默认选中一些选项,其中就有一个是是否对apache的HTTP服务器提供支持的选项,这个默认是勾上的,不要去反选它,其它的你可以反选掉.然后svn就宣布安装成功了.你可以到CMD下面去试一下svn这个命令,如果有输出,则说明安装成功了,如果提示svn 不是内部或外部命令，也不是可运行的程序或批处理文件。那就说明没有装好.或者没有把这个命令加入到path中,所以最好的办法是到svn的安装目录下的bin里面去看一下. 两者都装好了以后,就开始配置。 三、配置 1.首先要建立一个数据仓库,我们假设建在E盘,数据仓库最好不要建在C盘,因为C盘重装系统以后就格了.我们先在E盘下面建立一个目录叫svn,然后在E:\svn下面再建立一个我们专门放我们工程的目录,比如叫MyProject.于是我们在E盘下面就有了这个一个文件夹:E:\svn\MyProject,然后我们用svnadmin的命令,使这个文件夹变成我们的数据仓库,命令如下: svnadmin create E:\svn\MyProject 如果运行成功的话,什么也没有输出。 下面数据仓库目录的结构 E:\svn\MyProject ├─conf ├─dav ├─db │ ├─revprops │ ├─revs │ └─transactions ├─hooks └─locks 其中conf下面有三个文件： authz passwd svnserve.conf 其中的“svnserve.conf”是这个版本库的配置文件，svnserve.conf中提供了5个选项： anon-access 指定匿名用户对版本库的访问权限，可以是read，write或none auth-access 指定授权用户对版本库的访问权限，可以是read，write或none password-db [...]]]></description>
			<content:encoded><![CDATA[<p><img class="aligncenter" src="http://i1213.photobucket.com/albums/cc476/huiguo/apache.jpg" alt="apache.jpg" /></p>
<p>Subversion （SVN） 相关介绍请 Google &amp; Baidu<br />
一、下载<br />
1,apache_2.0.63-win32-x86-no_ssl.msi<br />
下载:http://apache.mirror.phpchina.com/httpd/binaries/win32/apache_2.0.63-win32-x86-no_ssl.msi<br />
2,svn-1.4.5-setup.exe<br />
下载地址:http://subversion.tigris.org/files/documents/15/39559/svn-1.4.5-setup.exe<br />
好了,准备的两个软件都下载下来以后,就可以开始安装了.<br />
二、安装<br />
Subversion提供了5种访问版本库的方式：<br />
1)直接版本库访问。客户端使用file:///打头的URL访问存储在本地磁盘上的版本库。这种情况下几乎不需要其它的配置即可访问，缺陷是版本库必须在本地磁盘上，而且没有用户授权管理。<br />
2)svnserve。在Subversion的手册中介绍：这是一个轻型的服务器，可以同客户端通过在TCP/IP基础上的自定义有状态协议通信。它默认使用3690端口并采用自定义的协议来提供服务，客户端使用svn://打头的URL访问服务器上的资源。<br />
3)Apache+mod_dav_svn。这种方式更灵活（例如无须开放额外的端口），但它的配置会复杂一些。Subversion通过Apache使用WebDAV协议来提供服务，客户端使用标准的http://打头的URL访问服务器上的资源。<br />
4)svnserve+SSH。在第二种方式的基础上增加了SSH封装以提高安全性，客户端使用svn+ssh://打头的URL访问服务器资源。<br />
5)Apache+mod_dav_svn+SSL。在第三种方式的基础上增加了SSL加密，客户端使用https://打头的URL访问服务器上的资源。<br />
关于各种访问方式更详细的信息请查阅Subversion的手册，本文暂时只第三种方式<br />
1.Apache的安装：<br />
首先安装apache,一般来说直接点下一步就可以了,在设置domain以及host的时候,设置为localhost就可以了,Email你可以填你自己的Email,也可以随便填一个.安装apache要注意的是,你的电脑上80端口不能被占用,否则你的http服务是启动不起来的。装好apache以后,你可以在浏览器的地址栏输入http://localhost看看,是否安装成功,如果安装成功的话,这个时候浏览器里面应该是可以看到一个页面的.<br />
2.安装SVN<br />
安装svn-1.4.5-setup.exe,也很简单,一步一步点下步就可以了,在安装的过程中,它会默认选中一些选项,其中就有一个是是否对apache的HTTP服务器提供支持的选项,这个默认是勾上的,不要去反选它,其它的你可以反选掉.然后svn就宣布安装成功了.你可以到CMD下面去试一下svn这个命令,如果有输出,则说明安装成功了,如果提示svn 不是内部或外部命令，也不是可运行的程序或批处理文件。那就说明没有装好.或者没有把这个命令加入到path中,所以最好的办法是到svn的安装目录下的bin里面去看一下.<br />
两者都装好了以后,就开始配置。<br />
三、配置<br />
1.首先要建立一个数据仓库,我们假设建在E盘,数据仓库最好不要建在C盘,因为C盘重装系统以后就格了.我们先在E盘下面建立一个目录叫svn,然后在E:\svn下面再建立一个我们专门放我们工程的目录,比如叫MyProject.于是我们在E盘下面就有了这个一个文件夹:E:\svn\MyProject,然后我们用svnadmin的命令,使这个文件夹变成我们的数据仓库,命令如下:<br />
svnadmin create E:\svn\MyProject</p>
<p>如果运行成功的话,什么也没有输出。<br />
下面数据仓库目录的结构<br />
E:\svn\MyProject<br />
├─conf<br />
├─dav<br />
├─db<br />
│ ├─revprops<br />
│ ├─revs<br />
│ └─transactions<br />
├─hooks<br />
└─locks<br />
其中conf下面有三个文件：<br />
authz<br />
passwd<br />
svnserve.conf<br />
其中的“svnserve.conf”是这个版本库的配置文件，svnserve.conf中提供了5个选项：<br />
anon-access 指定匿名用户对版本库的访问权限，可以是read，write或none<br />
auth-access 指定授权用户对版本库的访问权限，可以是read，write或none<br />
password-db 保存用户名与密码的文件，默认为同目录里的passwd。注意该文件是明文的<br />
authz-db 保存版本库的目录授权信息的文件，默认为同目录里的authz。<br />
realm 为版本库指定一个用于验证的域名。如果不同的版本库使用了相同的验证域名，则它们的passwd文件应该是一样的，反之亦然<br />
默认情况下以上选项均被注释掉了，在使用前需要去掉行首的#号，并进行适当的配置。如果打算仅允许客户端通过http:（或file:）+URL的方式访问，该文件不起作用，可以不理睬。<br />
我们使用“svnserve.conf”同目录的passwd和authz，其中的password-db指定了用户密码文件，authz-db是我们的授权文件<br />
2.我们打开conf文件夹,然后再打开svnserve.conf文件,找到如下行<br />
#password-db = passwd<br />
然后把它前面的#去掉,表示MyProject是需要密码验证的.但是我们密码设在哪里呢,这个时候我们再打开conf文件夹下面的passwd文件,用文本编辑器打开,在[users]下面加上我们需要启动的人员的用户和密码,比如<br />
[users]<br />
admin=admin<br />
root=toor<br />
这样的话我们就启动了两个用户,一个叫admin,密码是admin,一个叫root,密码是toor.然后我们保存passwd文件.<br />
3.我们再建一个文件,叫access.auth,这个文件是设置访问权限的,里面内容如下:<br />
[MyProject:/]<br />
root = rw<br />
[MyProject:/module1]<br />
admin=rw<br />
root=rw<br />
这表示,MyProject下面的所有子目录root都是有权限读写的,但是admin只有权限读写此项目下面的module1目录,这个各自的访问权限就分的更细致了。<br />
4.现在我们就来生成users.auth文件.<br />
进入apache的安装目录的bin文件夹,输入如下命令:<br />
D:\Program Files\Apache Group\Apache2\bin&gt;htpasswd -cb users.auth root toor<br />
Automatically using MD5 format.<br />
Adding password for user hadeslee<br />
D:\Program Files\Apache Group\Apache2\bin&gt;<br />
我们就会发现在bin目录生成了users.auth,我们可以看到,root用户名已经被添加进去了,密码是用MD5加密过的.然后我们还要增加用户呢?<br />
可以用如下方法:<br />
D:\Program Files\Apache Group\Apache2\bin&gt;htpasswd -b users.auth admin admin<br />
Automatically using MD5 format.<br />
Adding password for user tom<br />
D:\Program Files\Apache Group\Apache2\bin&gt;<br />
只是在生成密码的时候,小了一个c的参数,因为c表示重新生成一个这样的文件,我们第一次的时候是要加的,后面我们要添加用户的时候,就不用这个c了.然后打开users.auth,会发现两个用户都已经在里面了。我们把users.auth移到E:/svn/MyProject/conf/里面去,使我们上面的设置生效.<br />
5.我们现在开始设置apache,使它能和subvertion一起工作.<br />
首先来到Subersion的安装目录,进入它的bin目录,找到如下两个文件:<br />
mod_authz_svn.so<br />
mod_dav_svn.so<br />
我们把这两个文件复制一下,粘帖到apache的安装目录下的modules文件中,然后我们再打开apache安装目录下的conf文件夹,打开httpd.conf文件.增加如下两行：<br />
LoadModule dav_svn_module modules/mod_dav_svn.so<br />
LoadModule authz_svn_module modules/mod_authz_svn.so<br />
注意：由于dav_svn需要dav_module的支持，所以要确保下面这一行没有被注释，并且保证在dav_svn之前加载：<br />
LoadModule dav_module modules/mod_dav.so<br />
模块的设置就完成了,下面我们要设置SVN的目录,以使我们的apache能知道访问不同的URL的时候,它去哪里寻找这个URL所对应的SVN目录.<br />
在httpd.conf文件中,再增加如下内容:</p>
<p>DAV svn<br />
SVNPath E:/svn/MyProject<br />
AuthzSVNAccessFile E:/svn/MyProject/conf/access.auth<br />
Satisfy Any<br />
Require valid-user<br />
AuthType Basic<br />
AuthName &#8220;Subversion repositories&#8221;<br />
AuthUserFile  E:/svn/MyProject/conf/users.auth<br />
Require valid-user</p>
<p>每个选项的含义：</p>
<p>要求Apache将路径中以/svn/开头的部分交给该段中定义的代理处理<br />
DAV svn 要求Apache将指定的路径交给指定的DAV提供者（此处为svn）处理<br />
SVNParentPath 指定存放Subversion版本库的完整目录。如果只使用应该版本库，可以用SVNPath选项而不是本选项<br />
AuthType 指定系统使用的认证类型。<br />
AuthType Basic使用基本的用户名+密码的认证方式。保存用户名和密码的文件由AuthUserFile选项指定AuthName 指定系统请求用户认证时显示给客户端的说明信息<br />
AuthUserFile 保存系统中允许的用户名及其密码。该文件通常用Apache的htpasswd工具维护<br />
AuthzSVNAccessFile 保存版本库的访问权限定义。<br />
Require valid-user 要求访问版本库时必须提供合法的用户名和密码，禁止匿名访问<br />
6。我们的设置就完成了.重新启动Apache 和 svnservice ,在浏览器中打开http://localhost/svn/MyProject<br />
查看是否成功了<br />
7。我们还可以给SVN创建服务<br />
sc create SVNservice binpath= &#8220;D:\Subversion\bin\svnserve.exe &#8211;service -r D:\svn&#8221; displayname= &#8220;SVNService&#8221; depend= Tcpip<br />
D:\Subversion\bin\  SVN目录<br />
D:\svn                     版本库目<br />
可以增加&#8221;start= auto&#8221;选项<br />
另外,如果路径中包括空格，一定要用“\”处理“&#8221;”号，例如上面的例子中如果svnserve.exe在“C:\program files\subversion\”中，则命令应该写为“binpath= &#8220;\&#8221;C:\program files\subversion\bin\svnserve.exe\&#8221;”（“”中的内容），整个命令如下：<br />
sc create SVNservice binpath= &#8220;\&#8221;C:\program files\subversion\bin\svnserve.exe &#8211;service -r D:\svn&#8221; displayname= &#8220;SVNService&#8221; depend= Tcpip<br />
其次，sc对选项的格式还有要求，例如“depend= Tcpip”不能写为“depend = Tcpip”或“depend=Tcpip”，也就是“=”前不能有空各，而后面必须有空格。<br />
PS：<br />
如果以后我们还要加入其它的项目,可以有两种解决方式<br />
1)把以后的项目也导入到我们的MyProject的仓库中,这个的话,就不用改什么配置了<br />
2)新建一个数据仓库,然后只要按上面的步骤,把新的设置放到httpd.conf里面就可以了.<br />
当然,验证文件,访问权限文件,还有访问SVN的密码都要自己按上面的方法再设一遍.<br />
3)如果要删除SVN服务  sc delete SVNService<br />
4)版本库的备份请查看官方指南<br />
svnadmin hotcopy<br />
svnadmin dump<br />
svnsync<br />
5)推荐使用图形化的SVN客户端TortoiseSVN<br />
官方网站为http://tortoisesvn.tigris.org/ 注意选择与SVN服务器配套的版本</p>
]]></content:encoded>
			<wfw:commentRss>http://www.jackq.com/windows-apache-subversion-svn-install/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

