设为首页 收藏本站
查看: 420|回复: 0

[经验分享] svn1.6+apache2.2配置之Apache集成

[复制链接]

尚未签到

发表于 2017-1-9 09:23:21 | 显示全部楼层 |阅读模式
软件准备
svn-win32-1.6.1.zip(http://subversion.tigris.org/files/documents/15/45600/svn-win32-1.6.1.zip)和apache_2.2.11-win32-x86-no_ssl.msi注意版本要匹配,否则可能会报错误1和2(见下面)
软件安装:
1. 安装svn
1.1 直接解压下载的svn压缩包即可
1.2(%svn%为svn的主目录)使用%svn%/bin下的svnadmin命令创建工程:
       svnadmin create d:/svn/myproject

      注释:d:/svn为svn的根目录,myproject是我们的工程
2.安装apache:
2.1 按照提示安装即可
    2.2 关于80端口是否被占用
2.2.1 使用命令netstat -ano|findstr ".*:80.*:.*" 即可查看80端口是否被使用,一般安装iis以及迅雷等软件有可能把端口占用,如果80被占用的话,最后一列的数字即为占用80端口软件的pid;当然您可以把该软件关闭,也可以修改apache的端口
    2.2.2(%apache%为apache的主目录)修改apache的端口可以修改%apache%/conf/httpd.conf
把里面的Listen 80修改为:
     Listen 81
     这样您的apache的端口就变成81了,不会与80冲突啦,修改后端口再按照2.1重新安装一次即可
2.3在浏览器里输入http://localhost:81正常显示说明安装成功。(81是端口号)
3.把svn与apache结合
3.1拷贝%svn%下的文件到%apache%下
3.1.1把%svn%\bin\下的mod_dav_svn.so和mod_authz_svn.so到%apache%\modules目录下
3.1.2把%svn%\bin\下的九个dll文件intl3_svn.dll,libapr-1.dll,libapriconv-1.dll,libaprutil-1.dll,libdb44.dll,libsvn_delta-1.dll,libsvn_fs-1.dll,libsvn_repos-1.dll,libsvn_subr-1.dll拷贝到%apache%\bin目录下(建议全部copy过去,否则容易报错误2,见下面)
3.2修改%apache%/conf/httpd.conf文件
3.2.1把在httpd中找到以下2行,并把前面的注释符#删除:
     #LoadModule dav_fs_module modules/mod_dav_fs.so
     #LoadModule dav_module modules/mod_dav.so

      如果不删除容易报错误3,见下面
3.2.2在LoadModule结尾处添加以下2行:
     LoadModule dav_svn_module modules/mod_dav_svn.so
     LoadModule authz_svn_module modules/mod_authz_svn.so

3.2.3在http.conf文件的结尾处添加以下配置行:
<Location /svn>
     DAV svn
     SVNParentPath D:\svn
     AuthType Basic
     AuthName "Subversion repositories"
     AuthUserFile D:\svn\passwd
     #AuthzSVNAccessFile D:\svnaccessfile
     Require valid-user
</Location>
注释:1. SVNParentPath D:\svn 为svn的主目录,参加1.2中设置
         2 .AuthUserFile D:\svn\passwd 密码存储文件,(下面要使用)
说明:
<Location /svn/>
   意味着可以通过像这样的URL(http://MyServer/svn)来访问Subversion版本库
DAV svn
   告诉Apache哪个模块负责服务像那样的URL--在这里就是Subversion模块
SVNListParentPath on
   在Subversion1.3及更高版本中,这个指示器使得Subversion列出由SVNParentPath指定的目录下所有的版本库
SVNParentPath F:\svnROOT
   告诉Subversion在目录F:\svnROOT下寻找版本库
AuthType Basic
   启用基本的验证,比如用户名/密码对
AuthName "Subversion repositories"
   当一个验证对话框弹出时,告诉用户这个验证是用来做什么的
AuthUserFile F:\svnROOT\htpasswd
   指定F:\svnROOT\htpasswd用为密码文件用来验证用户的用户名及密码
AuthzSVNAccessFile F:\svnROOT\authz
   指定F:\svnROOT\authz来限定各个用户或组在版本库中目录的访问权限
Require valid-user
   限定用户只有输入正确的用户名及密码后才能访问这个路径(此项表示,无论是IE还是Tortoise,只有通过密码验证才能访问)。
下面表示允许匿名访问,对于读操作,不需要用户验证。
#<LimitExcept GET PROPFIND OPTIONS REPORT>
#Require valid-user
#</LimitExcept>
AuthUserFile和AuthzSVNAccessFile 的工作原理是,先使用Apache用户机制进行验证,通过之后将请求提交给mod_authz_svn.so进行认证,最后使用mod_dav_svn.so提供的功能。    

3.3创建passwd文件来管理svn的访问权限
3.3.1 使用%apache%\bin\htpasswd.exe来创建密码
     第一个用户的命令:htpasswd -c D:\svn\passwd %username%
     第二个用户的命令:htpasswd D:\svn\passwd %username%
     注释:1.-c是创建新文,%username%是用户名,输入命令后还会提示输入密码二次。
           2.D:\svn\passwd为3.1.3中设置的路径文件
上面的配置仅仅是一个简单的示例。你还可以对Apache进行许许多多的配置。
1.如果你想让所有用户对版本库都有读的权限而只有特定的用户才有写的权限,你可以将这行
CODE:
Require valid-user
改为
CODE:
<LimitExcept GET PROPFIND OPTIONS REPORT>
Require valid-user
</LimitExcept>
2.上面的配置使用了passwd文件将你所有的版本库作为一个单元来限定访问权限。如果你想获得更多的控制,如限定某个用户可以访问版本库中的哪个目录,可以把下面这行的#去掉:
CODE:
#AuthzSVNAccessFile D:\svnaccessfile
然后用文本编辑器创建一个Subversion授权文件。Apache将确保只有有效的用户可以访问你的/svn位置,然后将用户名传到 AuthzSVNAccessFile模块,这样可以依据Subversion授权文件得到更精细的权限控制。注意,路径将被指定为[库:路径]或者简单的[路径]。如果你不明确指定一个库,访问规则将应用到由SVNParentPath指定的目录下所有的版本库中。一个授权文件例子可能像这样:
CODE:
[groups]
admin = john, kate
devteam1 = john, rachel, sally
devteam2 = kate, peter, mark
docs = bob, jane, mike
training = zak
# 为所有库指定默认访问规则
# 所有人可以读,管理员可以写,危险分子没有任何权限
[/]
* = r
@admin = rw
dangerman =
# 允许开发人员可以完全访问他们的项目版本库
[proj1:/]
@devteam1 = rw
[proj2:/]
@devteam2 = rw
[bigproj:/]
@devteam1 = rw
@devteam2 = rw
trevor = rw
# 文档编写人员对所有的docs目录有写权限
[/trunk/doc]
@docs = rw
# 培训人员可以完全访问培训版本库
[TrainingRepos:/]
@training = rw

Svn与apache结合容易产生的错误
     1.httpd.exe:Syntax error on line 86 of D:/Program Files/Apache Software Fou
n/Apache2.2/conf/httpd.conf: API module structure 'dav_svn_module'in file
ogram Files/Apache Software Foundation/Apache2.2/modules/mod_dav_svn.so is
ed - expected signature 41503232 but saw 41503230 - perhaps this is not an
e module DSO, or was compiled for a different Apache version?
Note the errors or messages above, and press the <ESC> key to exit. 3....
解决办法就是使用2.0版本的apache
   2.httpd.exe: Syntaxerror on line 86 of D:/Program Files/Apache Software Foundatio
n/Apache2.2/conf/httpd.conf: Cannot load D:/Program Files/Apache Software Founda
tion/Apache2.2/modules/mod_dav_svn.so into server: \xd5\xd2\xb2\xbb\xb5\xbd\xd6\
xb8\xb6\xa8\xb5\xc4\xb3\xcc\xd0\xf2\xa1\xa3
Note the errors or messages above, and press the <ESC> key to exit. 16...
可以看到已经说明了是2.2.9以上的apache
3.Syntax error on line 487 of D:/Program Files/Apache Software Foundation/Apache2.
2/conf/httpd.conf:
Invalid command 'DAV', perhaps misspelled or defined by a module not included in
the server configuration
Note the errors or messages above, and press the <ESC> key to exit. 25...
把LoadModule dav_module modules/mod_dav.so 前的注释去掉
 
转帖:http://hi.baidu.com/lubezhang/blog/item/bf7aa72ea2c7fa5b4ec226d2.html

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-325807-1-1.html 上篇帖子: Apache Commons包含了很多开源的工具类介绍 下篇帖子: 轻松实现Apache,Tomcat集群和负载均衡(转载)
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表