【linux服务端】

1、yum install httpd mod_dav_svn subversion mod_ssl -y

查看是否安装成功

svn --version

[root@localhost html]# svn --version

svn, version 1.6.11 (r934486)

  compiled Apr 11 2013, 14:29:11


2、添加svn相关模块到httpd配置文件,确认有以下2个模块

LoadModule dav_module modules/mod_dav.so

LoadModule dav_fs_module modules/mod_dav_fs.so


【SVN配置】

1.创建版本库

   # mkdir -pv /svn/date   --创建主目录

   # svnadmin create /svn/date/www  --创建仓库

 2.更改权限

   # chmod -R 700 /svn/date/  --修改库的其他人无权限

   # chown -R apache:apache /svn/date/   --修改库的所属

 3.更改apache配置

   #vim /etc/httpd/conf/httpd.conf

<Location /svn/>      --要多加一个/    在web错误日志中会有如下:

The URI does not contain the name of a repository


DAV svn

SVNParentPath /svn/date

SVNListParentPath on

AuthType Basic

AuthName "svn"

AuthUserFile /svn/passwd

AuthzSVNAccessFile /svn/auth.conf

Require valid-user

</Location>


详解

#   <Location /svn>   表示你的访问目录

 #   DAV svn DAV   模块名称(我们这里也就是svn)

 #   SVNParentPath /svn/date   我们的库文件夹

 #  AuthType Basic   验证方式

    AuthName "svn"   验证名称

   AuthUserFile /svn/passwd   验证用户的文件

   AuthzSVNAccessFile   /svn/auth.conf   用户权限文件

   Require valid-user     这项是说明/svn/passwd文件内说有用户都可以访问

4.创建apache账户

  第一次 # htpasswd -c /svn/passwd neo -c 表示新建一个文件以后就不需要加了

  # htpasswd /svn/passwd tina


   # vim /svn/auth.conf 编辑权限文件 加入以下内容

[groups]

group001 = neo,tina

--定义一个组为group001,里面成员有neo和tina

[/]

neo=rw

tina=r

[project:/system]

@admin=rw


【需要在svn/data/目录下在svnadmin create新建一个名为project的仓库,然后把project文件夹的属主属组改为apache】

http://ip/project/system


[groups]用户组定义 [/]表示对主目录的权限设置 可以看出neo是读写,tina是只读。

# chown -R apache:apache /svn/ 再次修改文件所属


这样apache+svn就搭建好了

启用服务:

# service httpd start

# svnserve -d -r /svn/date/    

svnserver 的选项 -d  表示以守护进程方式开启 -r 后面跟库目录

接下来就是测试了


【linux客户端】

yum -y install subversion


然后svn co https://192.168.1.18/svn/www

以后如果有更新的话,直接跑到刚刚新建的www目录下,svn up就可以了


【windows客户端】

先在windows下随便将一个文件夹导入到www仓库里面去

路径为http://ip/svn/www

然后再其他地方,把http://ip/svn/www导出来

【先import】

svn+apache+ssl_svn

svn+apache+ssl_svn_02

svn+apache+ssl_svn_03

导入成功,接下来就是checkout了

【checkout】

在其他一个盘,将www目录checkout一份下来

svn+apache+ssl_svn_04

svn+apache+ssl_svn_05

导出成功


【apache+ssl】

这样子apache+svn就可以使用了,但是我们的http在网络上什么都是明文传递的 这样我们的数据是非常不安全的,所以我们将这个服务器与ssl整合到一起

 1.生产密钥文件

 #cd /etc/httpd/conf

 # openssl genrsa -out httpd.key 1024  生成一个私钥文件

 # openssl req -new -key httpd.key -out httpd.pem -days 3650 -x509

再红线处依次填写:国家,省份,城市,公司,部门,网络名,邮箱完成。


修改apache使ssl生效

# vim /etc/httpd/conf.d/ssl.conf

SSLCertificateFile "/home/ssl/httpd.pem"

SSLCertificateKeyFile "/home/ssl/httpd.key"


<Directory />

   Options FollowSymLinks

   AllowOverride None

SSLRequireSSL   --在网站根目录下强制ssl连接

</Directory>

重启apache

现在访问svn,需要用https://192.168.1.18/svn/www

svn+apache+ssl_svn_06

还是先用http协议访问,结果报了拒绝访问

svn+apache+ssl_svn_07

现在改为https访问的话,点"继续浏览此网站",然后输入账号和密码就可以了

svn+apache+ssl_svn_08

几个session图片就是刚刚上传的