Subversion、apache 安装细节问题

avatar 2021年12月23日12:42:57 5 1523 views
博主分享免费Java教学视频,B站账号:Java刘哥

最近我们需要把老的Subversion的svn协议改成http协议,所以需要整合apache

然后用户在svn客户端提交代码,我们可以根据apache的访问日志来查询

最终通过ELK分析日志即可

本文介绍 Subversion 安装和 apache 的一些细节问题

一、Subversion安装

版本需要1.8.8,下载 Setup-Subversion-1.8.8.msi

然后直接安装就行

安装完毕后,在 cmd 里输入 svn --version 检查版本是不是1.8.8,如果之前安装了其他版本,请修改环境变量,确保版本一致。

 

安装完后,随便在一个目录新建一个 repository 文件夹,作为仓库的根目录

 

新建 htpasswd 文件,内容如下

admin:$apr1$e4g8WXxc$0sKXzIs3VrRHSK5Nb3c8f1

 

二、创建SVN仓库

然后新建一个仓库,在repository目录打开cmd,输入 svnadmin create repo1 创建 repo1仓库

然后在 repo1/authz 里添加

[/]
admin=rw

 

三、安装apache

安装apache2.2 下载 httpd-2.2.21-win32-x86-no_ssl.msi

随便安装到哪个目录

1、拷贝subversion\bin下的 mod_authz_svn.so 和 mod_dav_svn.so 到apache安装目录下的modules里面

2、修改apache里的 httpd.conf

里面代码如下

ThreadsPerChild 128
MaxMemFree 64
MaxRequestsPerChild  0
MaxKeepAliveRequests 2000
KeepAliveTimeout 5
Win32DisableAcceptEx
LimitXMLRequestBody 0
LimitRequestFieldSize 12392

ServerRoot "F:/soft/Apache2.2"
ServerName "10.1.5.203:8080"
ServerSignature Off
ServerTokens Prod
DocumentRoot "htdocs"
FileETag MTime Size

PidFile "${TEMP}\VisualSVNServer.pid"

Listen "8080"

LoadModule auth_basic_module modules/mod_auth_basic.so
LoadModule authn_file_module modules/mod_authn_file.so
# LoadModule authn_visualsvn_module modules/mod_authn_visualsvn.so
LoadModule authz_svn_module modules/mod_authz_svn.so
LoadModule alias_module modules/mod_alias.so
LoadModule dir_module modules/mod_dir.so
LoadModule mime_module modules/mod_mime.so
LoadModule setenvif_module modules/mod_setenvif.so
LoadModule rewrite_module modules/mod_rewrite.so
LoadModule expires_module modules/mod_expires.so

LoadModule dav_module modules/mod_dav.so
LoadModule dav_svn_module modules/mod_dav_svn.so
# LoadModule ssl_module modules/mod_ssl.so

<Directory />
  Options FollowSymLinks
  AllowOverride None

  RewriteEngine on
  RewriteCond %{REQUEST_URI} ^/svn$
  RewriteRule ^(.*/svn)$ %1/ [R=301,L]
</Directory>

SVNInMemoryCacheSize 16384

<Location /svn/>
  DAV svn

  SVNListParentPath on
  SVNParentPath "F:/soft/Subversion/repository"
  SVNIndexXSLT "/svnindex.xsl"

  SVNPathAuthz short_circuit

  SVNCacheTextDeltas off
  SVNCacheFullTexts off

  AuthName "VisualSVN Server"
  AuthType Basic
  AuthBasicProvider file
  AuthUserFile "F:/soft/Subversion/repository/htpasswd"
  AuthzSVNReposRelativeAccessFile authz

  require valid-user

  # Add Expires/Cache-Control header explictly
  ExpiresActive on
  ExpiresDefault access
</Location>

Alias /web-ui-static htdocs/web-ui-static

<IfModule dir_module>
    DirectoryIndex index.html
</IfModule>

ErrorLog nul

LogLevel error

TraceEnable off

DefaultType text/plain

<IfModule mime_module>
    TypesConfig conf/mime.types
    AddType application/x-compress .Z
    AddType application/x-gzip .gz .tgz
    AddType application/x-x509-ca-cert .crt
    AddType application/x-pkcs7-crl    .crl
</IfModule>

<IfModule ssl_module>
SSLEngine on

SSLRandomSeed startup   builtin
SSLRandomSeed connect   builtin
SSLPassPhraseDialog     builtin
SSLSessionCache         "shm:F:/soft/Subversion/repository/ssl_scache"
SSLSessionCacheTimeout  300
SSLMutex                default
SSLCertificateFile      certs/server.pem
SSLCertificateKeyFile   certs/server.pem
SSLProtocol             -ALL +SSLv3 +TLSv1
SSLCipherSuite          ALL:!aNULL:!ADH:!eNULL:!LOW:!EXP:RC4+RSA:+HIGH:+MEDIUM

SetEnvIf User-Agent ".*MSIE.*" ssl-unclean-shutdown

</IfModule>

# Include conf/httpd-custom.conf

注意修改apache安装目录,svn仓库地址等

3、安装apache2.2服务

在apache下的bin目录执行命令

httpd.exe -k install

4、启动apache

在apache下的bin目录,双击httpd.exe

 

然后用小乌龟svn客户端,checkout下 http://localhost:8080/svn/repo1 接口,账号密码为htpasswd里的,密码为123456的md5加盐加密

 

  • 微信
  • 交流学习,有偿服务
  • weinxin
  • 博客/Java交流群
  • 资源分享,问题解决,技术交流。群号:590480292
  • weinxin
avatar

发表评论

avatar 登录者:匿名
匿名评论,评论回复后会有邮件通知

  

已通过评论:0   待审核评论数:0