zhouu 发表于 2013-3-22 09:18:29

Apache+svn搭建svn服务器

内部服务器:192.168.1.30 CentOS6.3_x86_64内部开发:win7 64位外网服务器:CentOS5.8_x86_64
1,安装svn软件服务器端(192.168.1.30)       yum install subversion【svnversion,版本 1.6.11 (r934486) 编译于 Jun 23 2012,00:44:03】       yum install mod_dav_svn 【加载模块用的】yum install httpd【Apache/2.2.15 (Unix) Server built: Feb 22 2013 11:19:58】都不用去找软件包,yum直接安装,也不用配置yum,CentOS是最小化安装2,安装好了以后,会有svn的相关命令,打开svn的配置文件subversion.conf,在/etc/httpd/conf.d/下面,其实大家都知道,/etc/httpd/目录是apache的目录,默认安装svn的时候就把svn的配置文件放在apache下面,说明这个配置很简单,事实说明,我配置完了真的很简单,只是我走了很多弯路。 配置文件最前面里有这两句,加载svn模块,如果没有,安装不成功。 LoadModule dav_svn_module   modules/mod_dav_svn.so LoadModule authz_svn_module   modules/mod_authz_svn.so

这个配置文件里默认的版本库在apache的根目录/var/html/www,里面还有创建版本库的步骤。 # To create a new repository "http://localhost/repos/stuff" using# this configuration, run as root:##   # cd /var/www/svn#   # svnadmin create stuff   #   # chown -R apache.apache stuff#   # chcon -R -t httpd_sys_content_t stuff 这是默认的,如果要修改版本库的话,最下面Location有标签。我把我做的贴出来,做下说明。应该都能看懂吧。
<Location /svn>      ----------->这个/svn很重要,名字随意   DAV svn#SVNParentPath /data/svn--------->原来有这行,但是没有用SVNPath /data/svn ------->这行原来没有,我自己加进去的,这个目录就是svn版本库目录##   # Limit write permission to list of valid users.#   <LimitExcept GET PROPFIND OPTIONS REPORT>#      # Require SSL connection for password protection.#      # SSLRequireSSL#      AuthType Basic      AuthName "svn for matu"   ----------->导出的时候在对话框里显示      AuthUserFile /data/passwd.conf   ----------->密码文件的位置,文件名随意      AuthzSVNAccessFile /data/authz.conf----------->权限文件,文件名随意      Require valid-user#   </LimitExcept></Location> 所有语句都有#号,把#号去掉表示生效,不去掉表示不生效

3,创建svn版本库。 mkdir /data/svn -p
svnadmin create /data/svn Chown apache:apache /data/svn -R Chmod 777 /data/svn -R ---->权限问题还有待研究 ls /data/svn -l创建成功的话会有以下内容drwxrwxrwx. 2 apache apache 4096 3月13 17:26 confdrwxr-xr-x3 apache apache 4096 3月14 10:12 davdrwxrwsrwx. 6 apache apache 4096 3月14 14:37 db-rwxrwxrwx. 1 apache apache    2 3月14 00:53 formatdrwxrwxrwx. 2 apache apache 4096 3月14 00:53 hooksdrwxrwxrwx. 2 apache apache 4096 3月14 00:53 locks-rwxrwxrwx. 1 apache apache229 3月14 00:53 README.txt
4,添加用户,分配权限给用户添加密码:htpasswd -c /data/passwd.confusername ---->位置跟配置文件里的一样,别搞错,给第一个用户添加密码时要加c,意思是创建这个文件,以后就不用加了。打开权限文件:vim /data/authz.conf---->这个文件可以参考/data/svn/conf/authz文件写在下面添加组,名字随意

all = admin,zhangsan,lisidesign = zhangsan
admin = adminphone = lisi 分配权限[/]---->这个根目录是指/data/svn

@all = r----->组名前面加@admin = rw----->r读,w写 ---->svn是指配置文件location标签里的svn,design是指版本库下面的一个文件夹,可以用管理员admin在客户端创建,同理其他文件夹也一样@design = rwlisi = r

5,至此,svn服务器端搭建完毕。如果是外网客户端访问内部局域网IP用http的80端口,一般IP没有开放80端口,还需要进httpd.conf修改默认端口,改用别的端口,并进路由器进行端口映射。
我把80端口修改为81,192.168.1.30为svn服务器IP,打开httpd.conf
Listen 192.168.1.30:81


ServerName svn.xxx.com    ----->内部可以用域名来访问,但是要在hosts设置启动apache /etc/init.d/httpd start

可以在本地用浏览器打开:http://svn.xxx.com:81/svn,会弹出对话框提示输入用户名和密码,表示安装成功。6,内部安装svn客户端
LanguagePack_1.7.10.23359-x64-zh_CN
TortoiseSVN-1.7.10.23359-x64-svn-1.7.7

我安装的是这两个包,可以去网上下载,安装完了要重启。设置为中文版我就不具体说明了。

7,外网web端使用

首先安装subversion,跟第2条服务器端一样,会有相关命令。


外网要访问内网的IP,需要在内网的路由器上进行映射转发,进入内网路由器。一般都是192.168.1.1,登录后打开转发规则----虚拟服务器,添加新条目。我的配置如下: 如果需要用域名方式来访问内网的svn,需要在客户端设置hosts,如果不需要直接用公网IP,就是不需要设置,这个公网IP就是内网的路由器用来访问外网的IP,可以在百度搜索里搜索IP。域名方式访问:1)在/etc/hosts中加入:外网IPsvn.xxx.com2)svn checkout http://svn.xxx.com:81/svn/xxx/xxx----前面为服务器端目录,后面会本地目录,就是把服务器端的数据导出到本地目录。IP方式访问:不用设置hosts,直接svn checkout http://外网IP:81/svn /xxx/xxx




这样svn服务器端,开发端,web端就设置完成了


2168575 发表于 2013-3-22 09:37:34

生活***好玩,因为生活老***玩我!

孤独750 发表于 2013-5-16 11:00:21

比我有才的都没我帅,比我帅的都没我有才!

shaerzzr 发表于 2013-5-17 18:47:44

我本非随便的人,但如果你想随便,那我就随你的便好啦!

cixiren 发表于 2013-5-19 07:51:45

你的丑和你的脸没有关系。。。。。。

huazhi 发表于 2013-5-20 15:38:56

鸳鸳相抱何时了,鸯在一边看热闹。

tubaobaoya3 发表于 2013-5-21 23:08:58

微机原理闹危机,随机过程随机过,实变函数学十遍,汇编语言不会编!
页: [1]
查看完整版本: Apache+svn搭建svn服务器