`
zhengdl126
  • 浏览: 2510593 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类

[已测试]centos安装配置svn,并更新源代码

    博客分类:
  • svn
阅读更多

安装完lamp以后,通过查看/etc/passwd  /etc/group 得出,centos下:
apache 用户apache 组apache
mysql  用户mysql  组mysql

简单查看方法:
$fp = fopen ("/var/www/html/file.txt", "wb");
让程序创建一个文件,然后查看这个文件的属主apache和属组apache

------------------svn的安装
/home/svnroot/svndata/仓库目录【多个仓库目录】
/home/svnroot/svnconf/配置目录


$ mkdir /home/svnroot
$ cd /home/svnroot
$ mkdir svndata
cd svndata
$ svnadmin create test
chown -R apache.apache test/    建了一个stuff仓库,并让apache称为该仓库宿主。

-------------------------------file访问方式
直接访问文件仓库(file://)
这是所有访问方式中最简单的。它不需要事先运行任何 SVN 服务。这种访问方式用于访问本地的 SVN 文件仓库。语法是:
cd /tmp
svn co file:///home/svnroot/svndata/test

如果报错“svn: 无法创建目录“myproject/.svn”: Permission denied”那么就指定SVN为777

 

 

-------------------------------WebDAV 协议访问 SVN 文件仓库

 

yum install subversion mod_dav_svn
为了使客户端能够通过Apache来访问SVN档案库,Apache需要加载一个特殊的模块mod_dav_svn。
如果您的Apache是按照与预设目录安装的,mod_dav_svn 模块应该会安装在 Apache 安装位置
 (默认路径是 /usr/local/apache2) 的 modules 子目录内。同时在Apache的配置文件
httpd.conf(默认路径为/usr/local/apache2/conf)中已经使用 LoadModule指令加载
了该模块
[root@localhost modules]#cd /etc/httpd/modules
[root@localhost modules]# ls | grep svn
mod_authz_svn.so
mod_dav_svn.so
重启APACHE 就可以查看到phpinfo和/etc/httpd/conf.d/subversion.conf





要通过 WebDAV 协议访问 SVN 文件仓库,您必须配置您的 Apache 2 Web 服务器。您必须加入下面的代码
片段到您的 /etc/httpd/conf.d/subversion.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>


创建 /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

 

 

 

---------vim /home/svnroot/svndata/test/hooks/post-commit


LANG="zh_CN.UTF-8"
#export LANG=zh_CN.UTF-8
#export LC_ALL=zh_CN.UTF-8
svn update --username stone --password stone http://192.168.1.104/svn/test /var/www/html/test --no-auth-cache

/etc/init.d/httpd restart

 

/var/www/html/test 目录应该是一个工作拷贝,才能update,所以要先手工checkout

cd /var/www/html

svn co file:///home/svnroot/svndata/test

chown -R apache.apache /var/www/html/test

 


/etc/init.d/httpd restart

 


在局域网【要求安装SVN客户端】中执行
http://192.168.1.104/svn/test

 

 

---------------------'post-commit' hook failed with error output:=====>>>try "chmod +x post-commit"

 


---------------------报错:403错误========>正确配置 /home/svnroot/svnconf/authz.conf



---------------------报错:post-commit hook failed with error output=========>要将post-commit【sh脚本】设为可执行
chmod +x post-commit


---------------------不报错但是也不更新
你的/opt/webroot/rsync_test目录应该是一个工作拷贝,才能update。你先手工checkout









----------------ps.理解配置authz文件

这个文件用于配置用户访问库中文件或者目录的具体策略,基本上默认文件里面就有说明和范例了,我的authz文件大概如下:

[groups]
g_w = michael,lee #意思是创建一个组,包含两个用户
g_r = test #第二个组,包含一个用户

[abc:/] #目录名
@g_w= rw #g_w组的用户都能read和write
@g_r=rw #g_r组的用户也能read和write

[xyz:/]
michael=rw
lee=r
@g_r=r

 

 

 

 

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics