SVN与Apache服务器整合
使用SVN自身的服务协议svn://可以实现客户端与服务端的通讯,但一般仅限于局域网内。若要从外网访问SVN服务器,一般是通过使用http 协议完成的,且服务端所使用的服务器一般为Apache服务器。
Apache服务器
Apache 服务器,确切地说,其名称为Apache Http Server
Apache服务器下载
Apache官网丕提供Apache服务器的二进制运行文件,只提供源码。
可以从 Apache官网查找Apache服务器的二进制文件的推荐下载地址。
修改配置
在httpd.conf文件里
在39行处:
Define SRVROOT "D:/Java/SVN/Apache24"
ServerRoot "${SRVROOT}"
在第290行处:
<IfModule dir_module>
DirectoryIndex index.html index.htm index.jsp
</IfModule>
常用命令
命令需要在管理员权限的命令行下运行
-
httpd
:- 不带任何参数的该命令,可以启动Apache 服务。但该启动方式的弊端是,当前命令行一直处于等待状态,还不能关闭。一旦关闭,Apache服务停止。一般不使用该方式。
-
httpd -h
-
httpd -k install
httpd -k uninstall
- 将Apache服务器的服务安装为了一个windows服务(默认名称是Apache2.4)。或者卸载
-
httpd -k install -n "Apache-Server"
:- 将Apache服务器的服务安装为了一个windows服务,命名为Apache-Server。名字可以改
-
httpd -k start [-n "Apache-Server"]
- 启动服务器,默认启动名为Apache2.4的服务器。
-
httpd -k stop|shutdown [-n "Apache-Server"]
- 停止服务器,默认启动名为Apache2.4的服务器。
-
httpd -k restart [-n "Apache-Server"]
- 重新启动服务器,默认启动名为Apache2.4的服务器。
Apache服务启动成功测试
在浏览器地址栏中输入http://localhost:80,则在打开的页面中可以看到“lt works”字样,则表示Apache 服务启动成功。
Apache服务器mis版
下载
下载地址:http://archive.apache.org/dist/httpd/binaries/win32/ ---------》 httpd-2.2.25-win32-x86-no_ssl.msi
SVN与Apache服务器整合
这里的SVN不能是Apache-Subversion-1.14.0.zip的版本
需要使用Setup-Subversion-1.8.16.msi版本的才能与Apache服务器整合
下载地址:https://sourceforge.net/projects/win32svn/
步骤
-
修改httpd.conf文件
在Apache服务器目录下的conf目录里
LoadModule dav_module modules/mod_dav.so LoadModule dav_fs_module modules/mod_dav_fs.so
- 打开第84、85行注释解除,用于加载两个so文件。
- so文件,即 shared 0bject,共享对象文件,是Linux系统下的动态链接库文件,类似于Windows下的.dll文件。
-
复制两个so文件
-
SVN服务端安装目录bin下:
mod_dav_svn.so
mod_authz_svn.so
-
复制到Apache服务器文件的moduls目录中
-
-
再次修改http.conf文件
-
LoadModule authz_svn_module modules/mod_authz_svn.so LoadModule dav_svn_module modules/mod_dav_svn.so
-
在第86、87行,插入上面内容,用于加载刚刚复制来的两个so文件。
-
-
复制dll文件
-
在SVN服务端安装目录的bin目录下复制下面八个dll文件,复制到Apache服务器目录的bin目录下
-
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-zzOiI3XR-1604842119097)(D:\Java\Java_note\JavaWeb\picture\svn整合1.png)]
因为刚刚复制的两个so文件的运行还依赖于这8个dll文件。
-
-
运行htpasswd命令
- 这是Apache服务器的命令,用于为SVN用户分配访问Apache服务器的用户名与密码。
- 这个命令需要在管理员权限的命令行运行。
htpasswd -h
查询htpasswd命令的帮助htpasswd -cb apachepwd.conf aa 222
在你打开的目录下创建一个apachepwd.conf文件(文件名任意),里面包含创建的用户名和密码(-c 代表创建文件,-b从命令行使用密码,而不提示输入密码。)htpasswd -b apachepwd.conf bb 222
在原先的apachepwd.conf文件下再加上用户名和密码
-
将复制用户名密码文件
- 将刚刚创建的apache.conf文件复制到SVN根仓库的目录conf目录下
-
第三次修改httpd.conf文件
-
在httpd.conf文件里面最后写下面的内容
-
# 指定访问使用的URI <location /svn/ems> # 指定远程要访问的模块为SVN DAV svn # 指定SVN根仓库路径 SVNPath D:/Java/SVN/repository/ems # 指定SVN授权文件路径 AuthzSVNAccessFile D:/Java/SVN/repository/ems/conf/authz # 指定所有用户都需要进行身份验证 Satisfy Any Require valid-user # 指定验证方式为基础验证,即密码验证 AuthType Basic # 指定项目名称 AuthName "ems" # 指定用户密码文件路径 AuthUserFile D:/Java/SVN/repository/ems/conf/apachepwd.conf </location>
-
-
整合成功标志
配置完毕后,重启Apache服务器,然后在地址栏中输入: http://localhost/svn/ems,可以看到ems - Revision 0:/字样,表示整合成功。