1. |
本文需要两个文Ӟhttpd和subversion?br /> ·httpd是web服务器,用来通过web讉KsubversionQ?a >q里是官方网站,q里是它的下载网, q里可以下蝲到httpd-2.2.2.tar.bz2?br /> ·subversion是本文的主角,q里是他的官方网站,q里是它的下载网, q里可以下蝲到subversion-1.3.1.tar.bz2 |
2. |
新徏一个用Psvnroot 最好不要让root用户参与到svn的权限管理和日常的运行和l护工作中来Q但是下面的一些安装和配置操作q是 需要root用户来完成的Q因为有些操作只有root才能做? |
3. |
~译安装httpd (root用户操作)Q?br />//解压apache2安装?/font> # tar xvzf httpd-2.2.2.tar.gz //q入解压后的目录 # cd httpd-2.2.2 //配置apache安装Q前两个参数是必要加的Q你q可以根据您的需要添加其他的参数?/font> //后面的参数制定你要把apache安装哪里 # ./configure --enable-dav --enable-so --prefix=/usr/local/apache2/ # make //安装 # make install # cd /usr/local/apache2/bin //启动apache服务 # ./apachectl start //打开览器http://localhost/如果有测试页"It works!"出现则证明已l安装成功?/font>
|
|
3. |
安装Subversion
//解压SubVersion安装?(root用户q行下面的操? # tar xvzf Subversion-1.3.1.tar.gz //q入解压后的目录 # cd Subversion-1.3.1 //配置subversion安装 #./configure --with-apxs=/usr/local/apache2/bin/apxs --prefix=/usr/local/subversion --with-apr=/usr/local/apache2 --with-apr-util=/usr/local/apache2 --with-ssl --with-zlib --enable-maintainer-mode # make //安装 # make install //创徏库文件所在的目录 (svnroot用户q行下面的操? # mkdir /home/svnroot/repository //q入subversion的bin目录 # cd /usr/local/subversion/bin //创徏仓库"test" # ./svnadmin create /home/svnroot/repository/test # cd /home/svnroot/repository/test //看看是不是多了些文gQ如果是则说明Subversion安装成功?/font> # ls –l # cd /usr/local/subversion/bin //q条语句把路径/home/user/import下找到的文g导入C创徏的Subversion 仓库中去Q?/font> //提交后的修订版ؓ1?/font> # ./svn import /home/user/import file:///home/svnroot/repository/test –m "注释" //不让其他人有该目录的权限 # chmod 700 /home/svnroot/repository
|
|
4. |
修改Apache配置文g
# cd /usr/local/apadche2/bin //启动Apache # ./apachect1 start # vi /usr/local/apache2/conf/httpd.conf //在最下面d LoadModule dav_svn_module modules/mod_dav_svn.so LoadModule authz_svn_module modules/mod_authz_svn.so <Location /svn> DAV svn SVNParentPath /home/svnroot/repository/ //svn父目? AuthzSVNAccessFile /home/svnroot/repository/authz.conf //权限配置文g AuthType Basic //q接cd讄 AuthName "Subversion.zoneyump" //q接框提C? AuthUserFile /home/svnroot/repository/authfile //用户配置文g Require valid-user //采用何种认证 </Location> //其中authfile是通过"htpasswd [–c] /home/svnroot/repository/authfile username password"来创建的 //"Require valid-user"告诉apache在authfile中所有的用户都可以访问。如果没有它Q?br /> //则只能第一个用户可以访问新建库
|
|
5. |
重启apache
# ./usr/local/apache2/bin/apachectl restart //打开览器访问http://localhost/svn/test/Q如果有东西昄p明成功?/font>
|
|
6. |
权限理 1)增加用户
# htpasswd [-c] /home/svnroot/repository/authfile wooin //W一ơ设|用h使用-c表示新徏一个用h件。回车后输入用户密码Q完成对用户的增?/font> # htpasswd authfile 用户?加入新的用户)
|
2)权限分配
# vi /home/svnroot/repository/authz.conf [test:/] //q表C,仓库test的根目录下的讉K权限 wooin = rw //test仓库wooin用户hd写权? bao = r //test仓库bao用户hL? [test2:/] //test2仓库根目录下的访问权? wooin = r //wooin用户在test2仓库根目录下只有L? bao = //bao用户?test2仓库根目录下无Q何权? [/] //q个表示在所有仓库的根目录下 * = r //q个表示Ҏ有的用户都具有读权限 #[groups] //q个表示组讄 #svn1-developers = wooin, bao //q个表示某群l里的成? #svn2-developers = wooin #[svn1:/] #@svn1-developers = rw //如果在前面加上@W号Q则表示q是个群l权限设|?/font>
|
这个设|完成后。重启ApacheQ就可以通过 http://localhost/svn/test q个URL来访问仓库了Q当Ӟ受权限的限制Q必L合法用户才能讉K且具有相应的权限
|
7. |
一些备忘: 1. svn checkout http://localhost/svn/hello.world
2. svn commit 时的默认~辑器的环境变量$SVN_EDITOR=vi需要手动设定,用kate好像有问?br />
3. 如果linux的登录用户名密码都和svn的其中一个用户名密码相同Ӟ在checkout的时候不会要求输
入用户名密码直接可以checkout出来。比如:linux有个用户wooinQsvn也有一个用户wooinQƈ且密?
都是一LQ当用wooindlinux后,执行checkoutQ可以直接提取出源码文gQ不用输入认证信息?br /> 4. 在svn使用q程中牵扯到几种权限Q文件系l的权限Qlinuxpȝ权限Qsvn用户的权限,apacheq程的权限?br />
文gpȝ的权限,linuxpȝ权限Q这里相同的意思,是qx大家使用linux时文件夹和文件的讉K权限。在
svn建立仓库Q文件夹Q配|文件的时候用svnroot用户Qƈ仓库权限设|ؓ700Q不允许其他用户直接通过
文gpȝ查看Q只能由svnrootq行理?br />
apacheq程的权限:因ؓ所有跟仓库传输的操作都是通过apacheq程q行的,所以即使你lsvn用户讄?
很大的权限,但是apacheq程没有讉K仓库或者相x件的权限也没有用Qapacheq程的权限设|在
/usr/local/apache2/conf/httpd.conf 文g中配|,扑ֈ文g中的q两行:
User daemon # daemon改ؓsvnrootQ让apacheq程以svnroot的n份运? Group daemon
|
svn用户的权限:是在repository/authz.conf文g中设|的权限信息Q是svn用来理仓库讉K权限的?br /> 5. svn服务器设|有两种方式Qhttp ?svnserve。这里介l的是httpҎ
6. ?etc/profile的结设|一些svn启动时要做的工作
# start apache server for svn /usr/sbin/apachectl start export SVN_EDITOR=vi
|
7. APR libraries 安装 SVN 的时候最好指?--with-apr= ?--with-apr-util= 参数?Apache 安装的根目录 QServerRootQ下Q而不是用缺省的 SVN 安装包中自带?apr 。否则如果你安装?Apache 版本不同有可能导?APR 库不匚wQ出现类| Can't set position pointer in file '/svn/test/db/revs/1': Invalid argument 的错误?br /> Updated 2006-04-20 16:30 -- 比如说如果你安装的是apache 2.2.0版本Q就需要在~译安装svn的时候指? --with-apxs?-with-apr参数C的apache2.2.0安装目录下: ./configure --prefix=${subversionInstallFolder} / --with-apxs=${apacheInstallFolder}/bin/apxs / --with-apr=${apacheInstallFolder} / --with-apr-util=${apacheInstallFolder} / --with-ssl / --with-zlib / --enable-maintainer-mode
|
|
|
|
|
|
|