- 浏览: 2542449 次
- 性别:
- 来自: 深圳
文章分类
- 全部博客 (676)
- linux运维 (157)
- php (65)
- mysql (78)
- nginx (27)
- apche (18)
- framework (6)
- windows (9)
- IDE工具 (23)
- struts2 (7)
- java (13)
- 移动互联网 (14)
- memcache redis (23)
- shell基础/命令/语法 (37)
- shell (50)
- puppet (4)
- C (11)
- python (9)
- 产品经理 (27)
- Sphinx (4)
- svn (12)
- 设计构建 (12)
- 项目管理 (44)
- SEO (1)
- 网站架构 (26)
- 审时度势 (42)
- 网络 (14)
- 激发事业[书&视频] (81)
- 其它 (12)
- 摄影 (8)
- android (21)
最新评论
-
zhongmin2012:
原文的书在哪里
数据库水平切分的实现原理解析---分库,分表,主从,集群,负载均衡器 -
renzhengzhi:
你好,请问个问题,从master同步数据到slave的时候,s ...
数据库水平切分的实现原理解析---分库,分表,主从,集群,负载均衡器 -
ibc789:
你好,看了你的文章,我想请教个问题, 我在用 redis的时候 ...
redis 的两种持久化方式及原理 -
iijjll:
写得非常好
数据库水平切分的实现原理解析---分库,分表,主从,集群,负载均衡器 -
iijjll:
写得非常好
数据库水平切分的实现原理解析---分库,分表,主从,集群,负载均衡器
==========================================ubuntu测试,报错403
$ sudo apt-get install subversion
$ sudo apt-get install libapache2-svn
增加组,并且把用户加到组里::
sudo addgroup subversion7
sudo usermod -G subversion7 -a www-data 将您自己和 “www-data”(Apache 用户 ) 加入组成员中
$ mkdir /home/svnroot
$ cd /home/svnroot
$ mkdir svndata
$ chown -R www-data:subversion7 svndata
cd svndata
mkdir test
创建 SVN 文件test仓库:
$ svnadmin create /home/svnroot/svndata/test
赋予组成员对所有新加入文件仓库的文件拥有相应的权限:
$ chmod -R g+rws test
=-------------------------------访问方式
直接访问文件仓库(file://)
这是所有访问方式中最简单的。它不需要事先运行任何 SVN 服务。这种访问方式用于访问本地的 SVN 文件仓库。语法是:
cd /tmp
svn co file:///home/svnroot/svndata/test
如果报错“svn: 无法创建目录“myproject/.svn”: Permission denied”那么就指定SVN为777
----------------------WebDAV 协议访问 SVN 文件仓库
要通过 WebDAV 协议访问 SVN 文件仓库,您必须配置您的 Apache 2 Web 服务器。您必须加入下面的代码片段到您的 /etc/apache2/mods-available/dav_svn.conf中:
<Location /svn>
DAV svn
#SVNPath /home/svnroot/svndata
SVNParentPath /home/svnroot/svndata
AuthType Basic
AuthName "MTC subversion repository"
AuthUserFile /home/svnroot/svnconf/svn_user.conf
AuthzSVNAccessFile /home/svnroot/svnconf/authz.conf
//注销此行那么SVN都是匿名操作
#<LimitExcept GET PROPFIND OPTIONS REPORT>
Require valid-user
#</LimitExcept>
</Location>
#CustomLog logs/svn_logfile "%t %u %{SVN-ACTION}e" env=SVN-ACTION
如果需要用户每次登录时都进行用户密码验证,请将<LimitExcept GET PROPFIND OPTIONS REPORT>与</LimitExcept>两行注释掉。
当您添加了上面的内容,您必须重新起动 Apache 2 Web 服务器,请输入下面的命令:
/etc/init.d/apache2 restart
创建 /home/svnroot/svnconf/svn_user.conf 文件,该文件包含了用户授权的详细信息。要添加用户,您可以执行下面的命令:
cd /home/svnroot
mkdir svnconf
htpasswd -c /home/svnroot/svnconf/svn_user.conf stone
stone
-------------------------------------vim /home/svnroot/svnconf/authz.conf
[groups]
group1 = stone,ubuntu
[test:/]
* = rw
@group1 = rw
您可以通过下面的命令来访问文件仓库: 执行以下操作必须所在的目录可写,建议在/tmp下来执行,执行完以后会创建一个svndata。也可以在局域网【要求安装SVN客户端】中执行
http://192.168.1.101/svn/test
或者
svn co
http://192.168.1.101/svn/test
test --username stone
=============???????????????????????????????????????????????????????????????????报错:
svn: 服务器发送了意外的返回值(403 Forbidden),在响应 “OPTIONS” 的请求 “http://192.168.1.101/svn/svndata” 中
403返回值错误,SVN中表示访问权限出错,没有用你分配的权限去访问配置库。
把你的TSVN的认证信息清除一下
配置完成之后,通过http访问的时候,发生 403错误
原因应该是,对所指向的路径,没有访问权限。
用 ls -l
查看一下,路径的权限
URL大小写造成的。SVN在Check out是URL大小写不敏感的,在Commit/Delete时却是大小写敏感的!
----------------同步更新源码
cd /home/svnroot/svndata/test/hooks/
cp post-commit.tmpl post-commit
vim post-commit
LANG="zh_CN.UTF-8"
svn update --username stone --password stone http://192.168.1.101/svn/test
/var/www/test --no-auth-cache
#svn update --username stone --password stone http://192.168.1.101/svn/test /tmp/test --no-auth-cache
SVN地址: http://192.168.1.101/svn/test
U:stone
P:stone
Shell:P:zheng
--------------------------------公司SVN服务器的配置文件 :通过 WebDAV 协议访问 (http:// )
------------------------/etc/httpd/conf.d/subversion.conf
LoadModule dav_svn_module modules/mod_dav_svn.so
# Only needed if you decide to do "per-directory" access control.
LoadModule authz_svn_module modules/mod_authz_svn.so
<Location /svn>
DAV svn
SVNparentPath /home/svnroot/svndata 主仓库地址
AuthType Basic
AuthName "MTC Subversion"
AuthUserFile /home/svnroot/svnconf/svn_user.conf 用户帐号和密码
AuthzSVNAccessFile /home/svnroot/svnconf/authz.conf 读写权限
Require valid-user
</Location>
CustomLog logs/svn_logfile "%t %u %{SVN-ACTION}e" env=SVN-ACTION
-------------------------------------/home/svnroot/svnconf/authz.conf
[groups]
group1 = aa,he,zheng,chen,xie,zhuo
[bb:/]
@group1 = rw
bb = rw
-------------------------/home/svnroot/svnconf/svn_user.conf
aa:VYexe.o2oDvhM
bb:bEB4OmNm2./Ng
zheng:cLIdZuJ2rNURo
chen:q0W84IGVlB7XY
xie:Vix9.rCPS4leg
he:DU9ZhearZ.Cio
zhuo:U.6J4vA3gJ6Js
-------------------------/home/svnroot/svndata/test.***.com 仓库地址
/home/svnroot/svndata/test.***.com/conf/
authz 保留空
passwd 保留空
svnserve.conf 保留空
/home/svnroot/svndata/test.***.com/hooks/post-commit:
LANG="zh_CN.UTF-8"
svn update --username zheng --password *** http://192.168.200.233/svn/test.***.com /home/www/html/test.***.com --no-auth-cache
SVN地址: http://192.168.200.233/svn/test.***.com/
U:zheng
P:zheng
Shell:P:zheng
---------------------------------------------------------------参考教程:
$ sudo apt-get install subversion
$ sudo apt-get install libapache2-svn
创建 SVN 仓库
许多位置都可以放置 Subversion 文件仓库,其中两个最常用的是:/usr/local/svn 以及 /home/svn。为了在下面的描述中简单明了,我们假设您的 Subversion 文件仓库放在 /home/svn,并且你的项目名称是简单的“myproject”。
同样的,也有许多常用的方式设置文件仓库的访问权限。然而,这也是安装过程中最经常出现错误的地方,因此我们会对此进行一个详细说明。典 型的情况下,您应该创建一个名为“Subversion”的组来拥有文件仓库所在的目录。下面是一个快速的操作说明,有关内容请参考相关文档的详细说明:
* 在 Ubuntu 菜单上选择 “ 系统 -> 系统管理 -> 用户和组 ” ;
* 切换到 “ 组 ” 标签;
* 点击 “ 添加组 ” 按钮;
* 组名为 “subversion” ;
* 将您自己和 “www-data”(Apache 用户 ) 加入组成员中;
* 点击 “OK” 以确认修改,关闭该程序。
或者使用命令完成上述功能(增加组,并且把用户加到组里):
sudo addgroup subversion2
sudo usermod -G subversion2 -a www-data
再或者直接使用命令编辑组文件"sudo vi /etc/group",增加组和成员(不推荐):
$ sudo vi /etc/group
结果看上去,像这样。
$ cat /etc/group|grep subversion
subversion:x:1001:www-data,exp
您需要注销然后再登录以便您能够成为 subversion 组的一员,然后就可以执行签入文件(Check in,也称提交文件)的操作了。
现在执行下面的命令
$ sudo mkdir /home/svn
$ cd /home/svn
$ sudo mkdir myproject
$ sudo chown -R root:subversion2 myproject
下面的命令用于创建 SVN 文件仓库:
$ sudo svnadmin create /home/svn/myproject
赋予组成员对所有新加入文件仓库的文件拥有相应的权限:
$ sudo chmod -R g+rws myproject
如果上面这个命令在创建SVN文件仓库之前运行,你可能在后续Check in的时候遇到如下错误:
Can't open '/home/svn/myproject/db/txn-current-lock': Permission denied
查看txn-current-lock文件的权限和用户以及组信息,应该类似于:
$ ls -l /home/svn/myproject/db/txn-current-lock-rw-rwSr-- 1 root subversion
除了权限以外,用户及其组如果不对,则仍然会遇到上述问题,可以再次运行命令:
$ sudo chown -R root:subversion myproject
访问方式
Subversion 文件仓库可以通过许多不同的方式进行访问(Check Out,签出)——通过本地硬盘,或者通过各种网络协议。无论如何,文件仓库的位置总是使用 URL 来表示。下表显示了不同的 URL 模式对应的访问方法:
模式
访问方法
file:///
直接访问本地硬盘上文件仓库
http://
通过 WebDAV 协议访问支持 Subversion 的 Apache 2 Web 服务器
https://
类似 http://,支持 SSL 加密
svn://
通过自带协议访问 svnserve 服务器
svn+ssh://
类似 svn:// ,支持通过 SSH 通道
直接访问文件仓库(file://)
这是所有访问方式中最简单的。它不需要事先运行任何 SVN 服务。这种访问方式用于访问本地的 SVN 文件仓库。语法是:
$ svn co file:///home/svn/myproject
或者
$ svn co file://192.168.1.103/home/svn/myproject
如果报错“svn: 无法创建目录“myproject/.svn”: Permission denied”那么就指定SVN为777
注意:如果您并不确定主机的名称,您必须使用三个斜杠(///),而如果您指定了主机的名称,则您必须使用两个斜杠(//).
通过 WebDAV 协议访问 (http:// )
要通过 WebDAV 协议访问 SVN 文件仓库,您必须配置您的 Apache 2 Web 服务器。您必须加入下面的代码片段到您的 /etc/apache2/mods-available/dav_svn.conf中:
<Location /svn/myproject>
DAV svn
SVNPath /home/svn/myproject
AuthType Basic
AuthName "myproject subversion repository"
AuthUserFile /etc/subversion/passwd
<LimitExcept GET PROPFIND OPTIONS REPORT>
Require valid-user
</LimitExcept>
</Location>
如果需要用户每次登录时都进行用户密码验证,请将<LimitExcept GET PROPFIND OPTIONS REPORT>与</LimitExcept>两行注释掉。
当您添加了上面的内容,您必须重新起动 Apache 2 Web 服务器,请输入下面的命令:
sudo /etc/init.d/apache2 restart
接下来,您需要创建 /etc/subversion/passwd 文件,该文件包含了用户授权的详细信息。要添加用户,您可以执行下面的命令:
sudo htpasswd -c /etc/subversion/passwd stone
stone
它会提示您输入密码,当您输入了密码,该用户就建立了。“-c”选项表示创建新的/etc/subversion/passwd文件,所以user_name所指的用户将是文件中唯一的用户。如果要添加其他用户,则去掉“-c”选项即可:
sudo htpasswd /etc/subversion/passwd other_user_name
您可以通过下面的命令来访问文件仓库: 执行以下操作必须所在的目录可写,建议在/tmp下来执行,执行完以后会创建一个myproject。也可以在局域网中执行http://192.168.1.103/svn/myproject
$ svn co http://192.168.1.103/svn/myproject myproject --username stone
它会提示您输入密码。您必须输入您使用 htpasswd 设置的密码。当通过验证,项目的文件就被签出了。
警告:密码是通过纯文本传输的。如果您担心密码泄漏的问题,我们建议您使用 SSL 加密,
―――――――― 通过自带协议访问(svn://)
sudo svn import ss svn://192.168.1.103/myproject -m "ADD:add a test file"
//ss 是文件 执行此命令发现报错 “ svn 认证失败 ”
方法:采用用 mod_authz_svn 进行目录访问控制
进入myproject/conf修改svnserve.conf
[general]
anon-access = read
auth-access = write
password-db = passwd
修改passwd为:
[users]
admin=ssssss
guest=123456
authz文件用于用户的分组权限管理,偶是个人用户,也就算了吧。
小结:支持两种访问方式:
1. http://192.168.1.103/svn/myproject/ 此处所需要的用户和密码来源于/etc/apache2/mods-available/dav_svn.conf中的设置
2 svn://192.168.1.103/myproject 此处所需要的用户和密码来源于myproject/conf下的svnserve.conf和passwd
----------------利用hooks更新源代码
cp post-commit.tmpl post-commit
修改post-commit:
export LANG=zh_CN.GBK !
ah*RJ�
/home/svn/myproject update --username stone --password stone /var/www/myproject
最后提醒权限问题:
sudo chown -R www:www /var/www/ myproject
sudo chmod -R 777 /var/www/myproject
sudo chown -R www:www /home/svn/myproject/hooks/post-commit
sudo chmod -R 777 /home/svn/myproject/hooks/post-commit
另外需要查一下 lober 是否属于 apache 用户
//目录权限:
-bash-3.2$ cd /home/svnroot
-bash-3.2$ ls -al
总计 20
drwxr-xr-x 4 root root 4096 08-07 11:10 .
drwxr-xr-x 18 root root 4096 08-07 11:12 ..
drwxr-xr-x 2 root root 4096 08-07 11:14 svnconf
drwxr-xr-x 5 root root 4096 07-24 12:23 svndata
-bash-3.2$ cd svndata/
-bash-3.2$ ls -al
总计 20
drwxr-xr-x 5 root root 4096 07-24 12:23 .
drwxr-xr-x 4 root root 4096 08-07 11:10 ..
drwxr-xr-x 7 apache root 4096 07-21 15:38 bb
drwxr-xr-x 7 apache root 4096 07-24 12:28 test.***.com
-bash-3.2$ cd /home/www/html
-bash-3.2$ ls -al
总计 20
drwxr-xr-x 5 apache root 4096 07-24 14:34 .
drwxr-xr-x 11 root root 4096 07-21 15:53 ..
drwxr-xr-x 6 apache root 4096 08-07 17:15 .svn
drwxr-xr-x 33 apache apache 4096 08-07 10:34 test.***.com
发表评论
-
svnchanged_export.py 导出svn版本之间的变更文件
2012-06-18 17:03 3852===================== ... -
svn手册摘录
2012-06-13 15:15 1711一、版本库访问URL 模式 访问方法 file:/// ... -
【汇总】svn
2011-12-22 13:13 1521========================回 ... -
shell之同步svn代码到os
2011-11-23 11:37 3257#!/bin/sh #SVN路径 svn_path_ ... -
批量删除版本库中的.svn文件夹(win客户端)
2011-10-17 15:40 1845安装:建立一个文本文件,随意起个名字,例如aaa.reg ... -
从SVN导出指定版本号之间修改的文件
2011-08-21 14:15 3623当一个网站项目进入运营维护阶段以后,不会再频繁地更新全部源文件 ... -
(图解) SVN版本冲突解决详解
2010-09-20 10:45 6298版本冲突原因: 假设 A 、 B ... -
TortoiseSVN 汉化版安装
2009-10-31 10:36 4882http://tortoisesvn.net/download ... -
[已测试]centos安装配置svn,并更新源代码
2009-09-10 13:28 3776安装完lamp以后,通过查看/etc/passwd /etc ... -
svn利用TortoiseSVN忽略文件或文件夹(目录)
2009-08-07 11:01 3174如果文件已经存在于版本库,你需要做以下步骤: To ... -
windows下搭建svn (一)
2009-06-15 21:37 17601 svn 下载页面:http://subversion.ti ...
相关推荐
完成安装后,运行更新管理器以获取最新的软件源。 【安装Apache服务器】 通过新立得软件包管理器搜索并安装Apache2和libapache2-svn。安装完毕后,访问http://192.168.19.3,如果显示Apache的欢迎页面,则表明...
6. 配置 Apache 2:需要安装并配置 Apache 2 使用 SVN,详细信息可以另见相关文档。 7. 使用 HTTPS 协议访问 SVN 文件仓库:需要在 Apache 2 中安装并配置数字证书,详细信息可以另见相关文档。 8. 解决常见问题:...
Subversion是一个开源的版本控制系统,用于管理软件项目的源代码,允许团队成员协作开发,同时保持代码历史记录。下面是配置SVN服务器的步骤: 1. **安装Subversion** 在Ubuntu 12.04上,首先需要通过apt-get命令...
SVN(Subversion)是一种广泛使用的版本控制系统,用于管理软件项目的源代码和其他文件的变更历史。它使得多人协作开发变得简单,...随着对SVN服务器配置的深入理解和实践,你将能够更好地管理和维护你的项目源代码。
在Ubuntu 10.04操作系统中安装和配置Subversion(SVN)服务器是一个关键的任务,特别是对于团队协作和源代码管理。Subversion是一个开源的版本控制系统,它允许用户跟踪文件和目录的变更,便于团队成员共享和管理...
Apache作为世界上最流行的HTTP服务器软件,常被用来提供Web服务,而Subversion(SVN)则是一个版本控制系统,用于管理软件项目的源代码。本文将详细阐述在Ubuntu上配置Apache与Subversion的步骤和常见设置,以便于...
SVN(Subversion)是一种广泛使用的版本控制系统,用于管理软件项目的源代码和其他文件。它允许团队成员协同工作,跟踪每个更改,并轻松恢复到之前的版本。本文将详细介绍如何一键安装配置SVN,以及如何实现开机自动...
在Linux环境中,Subversion(简称svn)是一种广泛使用的版本控制系统,用于管理软件项目的源代码和其他文件的变更。本文将详细讲解如何在没有网络连接的情况下,通过提供的“Linux离线安装svn.zip”压缩包来安装和...
在本文中,我们将深入探讨如何在Ubuntu 14.04 LTS系统上,基于源码编译并安装Subversion 1.9.4,以及它所依赖的APR(Apache Portable Runtime)1.5.2和APR-Util 1.5.4库。这个过程对开发者和技术人员来说是必要的,...
4. 添加完源后,返回“Available Software”页面,搜索并选择SVN插件,例如“Subversive SVN Connectors”和“Subversive - SVN Team Provider”。确保选择与你的JDK版本兼容的插件。 5. 完成插件安装后,重启...
这里`source_file`是你要导入的源代码目录,`file:///home/svn/myproject`是仓库路径。 接下来,我们将讨论两种访问仓库的方式: 1. **直接访问文件仓库 (file://)** 这种方式无需运行SVN服务,适用于本地访问...
Linux下的Subversion(SVN)是一个强大的版本控制系统,用于管理软件项目中的源代码和其他文件的变更。本指南将深入探讨如何在Linux环境中配置SVN服务器,以及如何进行权限管理,确保团队成员能按照预设的角色和职责...
总结,虽然Ubuntu 14.04上的Subversion 1.8.13不支持SASL,但通过手动编译和安装,我们可以确保依赖库的正确配置,并采取其他措施来加强系统的安全性。记得定期更新和维护你的Subversion实例,以保持最新的安全补丁...
SVN,全称Subversion,是一款开源的版本控制系统,用于管理和跟踪项目源代码的变化,对于多人协作开发的团队来说,是不可或缺的工具。本说明将详细介绍SVN的安装、配置以及日常使用的各项操作。 **一、SVN安装** 1...
配置完客户端后,您可以开始使用SVN进行版本控制操作,如`svn co`(克隆仓库)、`svn commit`(提交更改)、`svn update`(更新本地副本)等。Subversion支持多种工作流程,如集中式和分布式,具体取决于您的团队...
在Linux系统中,Subversion(SVN)是一个广泛使用的版本控制系统,用于管理软件项目源代码和其他文件的变更历史。在没有互联网连接的情况下,离线安装SVN服务是开发者和系统管理员常常面临的需求。本篇文章将详细...
SVN,全称Subversion,是一种广泛使用的版本控制系统,用于管理软件项目的源代码和其他文件的变更历史。在本文中,我们将深入探讨如何安装SVN以及如何下载对应的语言包,特别是针对1.8.2和1.14.5这两个版本。 首先...
SVN,全称为Subversion,是一种广泛使用的版本控制系统,用于管理软件项目的源代码和其他文件的变更。它允许团队成员协作开发,跟踪每个更改,并轻松回滚到任何历史版本。在这个"svn安装以及资源"的压缩包中,我们很...