我是Mark 2015-08-12
linuxsvn安装部署
使用yumsearchsubversion获取需要安装的包
[root@localhost~]#yumsearchsubversion
subversion.i386:ModernVersionControlSystemdesignedtoreplaceCVS
subversion-devel.i386:DevelopmentpackageforSubversiondevelopers.
subversion-javahl.i386:JNIbindingstotheSubversionlibraries
subversion-perl.i386:PerlbindingstotheSubversionlibraries
subversion-ruby.i386:RubybindingstotheSubversionlibraries
依次安装以上的的subversion文件
yuminstallsubversionsubversion-develsubversion-javahlsubversion-perlsubversion-ruby
===========================================
安装完毕后,建立linuxSVN创库文件
mkdir/svn
cd/svn
mkdirrepos
svnadmincreaterepos
//付权限
chmod755/svn
======================================
编辑/svn/repos/conf/svnserve.conf
vi/svn/repos/conf/svnserve.conf
解开注释,记住这里的文件命令都必须抵头写,不能留空格,否则报错
anon-access=read
auth-access=write
password-db=passwd
authz-db=authz
============================================
vi/svn/repos/conf/passwd
user=pwd
如:tearsky=123456
用户:就是tearsky,密码就是123456
===============================
vi/svn/repos/conf/authz
追加下记文字
[groups]
#harry_and_sally=harry,sally
#harry_sally_and_joe=harry,sally,&joe
develop=zhuzhengling,zhangqiyu,zhangmengying,baoxiufen
#[/foo/bar]
#harry=rw
#&joe=r
#*=
#[repository:/baz/fuz]
#@harry_and_sally=rw
#*=r
[repos:/]
lisb=rw
@develop=rw
[/]
*=r
------------*=r设置组,只有读取权限,可设置一个readTest=r,限制其他人访问svn,如果是rw表示可读可写
=======================================================
执行svnserve-d-r/svn/repos/启动服务
-d启动,-r路径
==============================linuxsvnapache安装========================
svn安装同上
apache安装
通过yumsearchhttpd,找出需要安装的文件,
[[email protected]]#yumsearchhttpd
Loadedplugins:fastestmirror
Loadingmirrorspeedsfromcachedhostfile
*base:mirrors.btte.net
*extras:mirrors.btte.net
*updates:mirrors.btte.net
===========================================================================Matched:httpd============================================================================
mod_ssl.x86_64:SSL/TLSmodulefortheApacheHTTPserver
system-config-httpd.noarch:Apacheconfigurationtool
centos-ds.x86_64:CentOSDirectory,Administration,andConsoleSuite
httpd.x86_64:ApacheHTTPServer
httpd-devel.i386:DevelopmenttoolsfortheApacheHTTPserver.
httpd-devel.x86_64:DevelopmenttoolsfortheApacheHTTPserver.
httpd-manual.x86_64:DocumentationfortheApacheHTTPserver.
mod_dav_svn.x86_64:ApacheservermoduleforSubversionserver.
yuminstall-yhttpd....进行安装
[[email protected]]#yuminstall-ymod_sslsystem-config-httpdcentos-dshttpdhttpd-develhttpd-develhttpd-manualmod_dav_svn
安装完毕后,
新建用户
输入:htpasswd-c/svn/passwd.conflisb回车
输入两次密码
-c只有文件不存在的时候才用,有这个文件了,就不用-c了,/svn新建的文件在/svn下面的passwd.conf,可以任意指定,lisb里账号名字
如:创建新用户htpasswd/svn/passwd.confzhuzhengling
再复制/svn/repos/conf里面的authz文件到/svn下面,修改名字为authz.conf,也可以任意指定目录
cp/svn/repos/conf/authz/svn/authz.conf
authz.conf内容如下
[root@TTenvsvn]#viauthz.conf
[groups]
dev_user=chenbs,lisb,zhuyt,tanggy,yangxz
#dev_user=lisb,zhuzhengling,zhangqiyu,baoxiufen,zhangmengying
[/]
@dev_user=rw
模块加载
//一般来说下面两个文件会自动弄好,不用我们管
打开/etc/httpd/conf.d/subversion.conf,这个文件中的如下两行取消注释。
LoadModuledav_svn_modulemodules/mod_dav_svn.so
LoadModuleauthz_svn_modulemodules/mod_authz_svn.so
相应的so文件已经自动copy到了APACHE/modules。这些工作就不用自己动手了。
版本库控制
[root@TTenvsvn]#vi/etc/httpd/conf.d/subversion.conf
添加如下内容
<Location/svn/>#svn在访问的时候用到,http://ip/svn3.DAVsvn#不用修改
DAVsvn
SVNParentPath/svn#资料库的绝对地址
SVNListParentPathon
AuthTypeBasic
AuthName"Subversionrepository"
AuthzSVNAccessFile/svn/authz.conf#权限文件
AuthUserFile/svn/passwd.conf#账号文件
Requirevalid-user
</Location>
=========================
在这里就设置完成了
重启httpd
servicehttpdrestart
==============================
注意事项
注意:
(1)单个版本库就是SVNPath/svn/svnroot/icec跟./svnadmincreate/svn/svnroot/icec目录要一样,要不忙死你……【这个是对单个版本库】,多个版本库知道svn的主目录,
我这就是SVNParentPath/svn/svnroot
(2)AuthzSVNAccessFile是权限控制文件,单个版本库不需要,多个版本库要设置不同版本库的权限
(3)目录svnroot目录的权限设置成755
四、验证安装
打开浏览器,输入地址为http://服务器ip/
出现登陆窗口,输入用户名跟密码,
如果可以正常打开如上页面则说明安装配置正常,可以正常使用了,在页面上可以看到由于目前资料库中没有内容,因此看到的内容为空。
五、导入数据到资料库
Cd/usr/local/subversion/bin
./svnimport/要导入的目录file:///svn/svnroot-m“说明文字”
重新打开浏览器,输入地址http://服务器ip/svn,输入用户名密码。
安装配置就完成了。
以下摘抄于http://www.dasairen.com/Centos/19023011232.html
六、可能遇到的问题
整个过程不会一帆风顺的,这里介绍一些可能遇到的问题。
1、【这个问题是我创建单个版本库时遇到的】安装好了后,浏览器打开http://服务器ip/svn,登陆出现不了页面,出现:
<D:error>
<C:error/><m:human-readableerrcode="2">CouldnotopentherequestedSVNfilesystem</m:human-readable></D:error>
解决:这是httpd.conf里的<Locatesvn>中的SVNPath指向错误没指到创建的资料库
2、输入账号密码提示不能认证,查看APACHE的/etc/httpd/logs/error_log,有如下提示:
[TueOct0518:07:092010][error][client125.223.118.90](13)Permissiondenied:Couldnotopenpasswordfile:/svn/svnroot/passwd
[TueOct0518:07:092010][error][client125.223.118.90]accessto/svnfailed,reason:verificationofuserid'test'notconfigured
从日志看,因为检查过配置文件没有拼错,所以可以肯定是权限问题。从ls命令的结果可以看出,由于passwd的权限是没有问题的。
后来看了一位朋友的帖子【Linux环境下搭建APACHE+subversion+svnmanager】的启发,可能是SELinux引发的问题,
于是执行命令:
chcon-R-h-thttpd_sys_content_t/svn/svnroot
后来还是不行。执行以下命令后搞定
chcon-R-h-thttpd_sys_content_t/svn
总结教训:还是linux不熟悉的原因造成的,我是linux的新手。看来得恶补linux的基本知识。
3、组(group)设置
在TortoiseSVN中做Commit操作时可能遇到如下错误:
can'topenfile'/svn/svnroot/telnet/db/txn-current-lock':Permissiondenied
可以将telnet的所属组设置为APACHE
chgrp-RAPACHE/svn/svnroot/telnet
4、文件夹创建删除属性
在TortoiseSVN中做Commit操作时可能遇到如下错误:
can'topen'/svn/svnroot/telnet/db/tempfile.tmp':Permissiondenied
can'tmakedirectory'/svn/svnroot/telnet/dav/activities.d':Permissiondenied
设置telnet群组的访问方式为“创建和删除文件”
5、TheURIdoesnotcontainthenameofarepository.[403,#190001
这个原因是因为httpd.conf文件里SVNParentPath
加上这行代码后必须在你的访问URL中访问你的SVN下的具体的库
如果开启父目录显示就不会有这个问题了,即加上SVNListParentPathon
还有意Location/svn/的svn后面有一条斜线。
//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
#停止HTTPD服务
[root@zhangxxetc]#servicehttpdstop
停止httpd:[确定]
#启动httpd服务
[root@zhangxxetc]#servicehttpdstart
启动httpd:[确定]
#重起HTTD服务
[root@zhangxxetc]#servicehttpdrestart
停止httpd:[确定]
启动httpd:[确定]
#让httpd在机器启动的时候在运行级别上停止
[root@zhangxxetc]#chkconfig--level345httpdoff
[root@zhangxxetc]#chkconfig--list|grephttpd
httpd0:关闭1:关闭2:关闭3:关闭4:关闭5:关闭6:关闭
#让httpd在机器启动的时候在运行级别上启动
[root@zhangxxetc]#chkconfig--level345httpdon
[root@zhangxxetc]#chkconfig--list|grephttpd
httpd0:关闭1:关闭2:关闭3:启用4:启用5:启用6:关闭
查看svnserve进程
ps-ef|grepsvnserve
杀进程
killallsvnserve
启动:
svnserve-d-r/svn/repos/
svnserve-d-r/svn/nj_repository/
查看httpd进程
ps-ef|grephttpd
启动httpd
servicehttpdstop
servicehttpdstart
创建版本库
svnadmincreate/svn/njsvnresource
svnimport/home/ossfile:///svn/nj_repository/jiashitong/oss-m"导入文件"
svnserve-d-r/svn/nj_repository/jiashitong--config-file=/svn/nj_repository/jiashitong/svnserve.conf
svnserve-d-r/data/svn--config-file=/data/svn/svnserve.conf
tail-200f/etc/httpd/logs/error_log
pub_svnserve.conf的 pub_authz.conf的配置文件有非法字符的原因引起,需要查找pub_authz.conf提的非法内容比如多余的空格删除或直接将pub_authz.conf