每日一得

          不求多得,只求一得 about java,hibernate,spring,design,database,Ror,ruby,快速開(kāi)發(fā)
          最近關(guān)心的內(nèi)容:SSH,seam,flex,敏捷,TDD
          本站的官方站點(diǎn)是:顛覆軟件

            BlogJava :: 首頁(yè) :: 新隨筆 :: 聯(lián)系 :: 聚合  :: 管理 ::
            220 隨筆 :: 9 文章 :: 421 評(píng)論 :: 0 Trackbacks
          By: Wu Yin
          Date: 2006-06-30
          Email: lazy_fox#msn.com
          Link: http://blog.csdn.net/wooin/archive/2006/07/11/903974.aspx
          版權(quán)信息: 該文章版權(quán)由Wu Yin所有。可在非商業(yè)目的下任意傳播和復(fù)制。
          對(duì)于商業(yè)目的下對(duì)本文的任何行為需經(jīng)作者同意。
          聯(lián)系方式:lazy_fox#msn.com

          1. 本文需要兩個(gè)文件,httpd和subversion。
          ·httpd是web服務(wù)器,用來(lái)通過(guò)web訪問(wèn)subversion,這里是官方網(wǎng)站,這里是它的下載網(wǎng)頁(yè),
          ??這里可以下載到httpd-2.2.2.tar.bz2。
          ·subversion就是本文的主角,這里是他的官方網(wǎng)站,這里是它的下載網(wǎng)頁(yè),
          ??這里可以下載到subversion-1.3.1.tar.bz2
          2. 新建一個(gè)用戶:svnroot
          最好不要讓root用戶參與到svn的權(quán)限管理和日常的運(yùn)行和維護(hù)工作中來(lái),但是下面的一些安裝和配置操作還是 需要root用戶來(lái)完成的,因?yàn)橛行┎僮髦挥衦oot才能做。
          3. 編譯安裝httpd (root用戶操作):
          //解壓apache2安裝包
          # tar xvzf httpd-2.2.2.tar.gz
          //進(jìn)入解壓后的目錄
          # cd httpd-2.2.2
          //配置apache安裝,前兩個(gè)參數(shù)是必須要加的,你還可以根據(jù)您的需要添加其他的參數(shù)。
          //后面的參數(shù)制定你要把a(bǔ)pache安裝哪里
          # ./configure --enable-dav --enable-so --prefix=/usr/local/apache2/
          # make
          //安裝
          # make install
          # cd /usr/local/apache2/bin
          //啟動(dòng)apache服務(wù)
          # ./apachectl start
          //打開(kāi)瀏覽器http://localhost/如果有測(cè)試頁(yè)"It works!"出現(xiàn)則證明已經(jīng)安裝成功。
          3. 安裝Subversion
          //解壓SubVersion安裝包 (root用戶進(jìn)行下面的操作)
          # tar xvzf Subversion-1.3.1.tar.gz
          //進(jìn)入解壓后的目錄
          # 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
          //創(chuàng)建庫(kù)文件所在的目錄 (svnroot用戶進(jìn)行下面的操作)
          # mkdir /home/svnroot/repository
          //進(jìn)入subversion的bin目錄
          # cd /usr/local/subversion/bin
          //創(chuàng)建倉(cāng)庫(kù)"test"
          # ./svnadmin create /home/svnroot/repository/test
          # cd /home/svnroot/repository/test
          //看看是不是多了些文件,如果是則說(shuō)明Subversion安裝成功了
          # ls –l
          # cd /usr/local/subversion/bin
          //這條語(yǔ)句將把路徑/home/user/import下找到的文件導(dǎo)入到你創(chuàng)建的Subversion 倉(cāng)庫(kù)中去,
          //提交后的修訂版為1。
          # ./svn import /home/user/import file:///home/svnroot/repository/test –m "注釋"
          //不讓其他人有該目錄的權(quán)限
          # chmod 700 /home/svnroot/repository
          4. 修改Apache配置文件
          # cd /usr/local/apadche2/bin
          //啟動(dòng)Apache
          # ./apachect1 start
          # vi /usr/local/apache2/conf/httpd.conf
          ?? //在最下面添加
          ?? 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 //權(quán)限配置文件
          ?? AuthType Basic //連接類型設(shè)置
          ?? AuthName "Subversion.zoneyump" //連接框提示
          ?? AuthUserFile /home/svnroot/repository/authfile //用戶配置文件
          ?? Require valid-user //采用何種認(rèn)證
          ?? </Location>
          ?? //其中authfile是通過(guò)"htpasswd [–c] /home/svnroot/repository/authfile username password"來(lái)創(chuàng)建的
          ?? //"Require valid-user"告訴apache在authfile中所有的用戶都可以訪問(wèn)。如果沒(méi)有它,
          ?? //則只能第一個(gè)用戶可以訪問(wèn)新建庫(kù)

          5. 重啟apache
          # ./usr/local/apache2/bin/apachectl restart
          //打開(kāi)瀏覽器訪問(wèn)http://localhost/svn/test/,如果有東西顯示就說(shuō)明成功。
          6. 權(quán)限管理
          1)增加用戶
          # htpasswd [-c] /home/svnroot/repository/authfile wooin
          //第一次設(shè)置用戶時(shí)使用-c表示新建一個(gè)用戶文件。回車后輸入用戶密碼,完成對(duì)用戶的增加
          # htpasswd authfile 用戶名(加入新的用戶)
          2)權(quán)限分配
          # vi /home/svnroot/repository/authz.conf
          ?? [test:/] //這表示,倉(cāng)庫(kù)test的根目錄下的訪問(wèn)權(quán)限
          ?? wooin = rw //test倉(cāng)庫(kù)wooin用戶具有讀和寫(xiě)權(quán)限
          ?? bao = r //test倉(cāng)庫(kù)bao用戶具有讀權(quán)限
          ?? [test2:/] //test2倉(cāng)庫(kù)根目錄下的訪問(wèn)權(quán)限
          ?? wooin = r //wooin用戶在test2倉(cāng)庫(kù)根目錄下只有讀權(quán)限
          ?? bao = //bao用戶在 test2倉(cāng)庫(kù)根目錄下無(wú)任何權(quán)限
          ?? [/] //這個(gè)表示在所有倉(cāng)庫(kù)的根目錄下
          ?? * = r //這個(gè)表示對(duì)所有的用戶都具有讀權(quán)限
          ?? #[groups] //這個(gè)表示群組設(shè)置
          ?? #svn1-developers = wooin, bao //這個(gè)表示某群組里的成員
          ?? #svn2-developers = wooin
          ?? #[svn1:/]
          ?? #@svn1-developers = rw //如果在前面加上@符號(hào),則表示這是個(gè)群組權(quán)限設(shè)置
          將這個(gè)設(shè)置完成后。重啟Apache,就可以通過(guò)
          http://localhost/svn/test
          這個(gè)URL來(lái)訪問(wèn)倉(cāng)庫(kù)了,當(dāng)然,受權(quán)限的限制,必須是合法用戶才能訪問(wèn)且具有相應(yīng)的權(quán)限
          7. 一些備忘:
          1. svn checkout http://localhost/svn/hello.world

          2. svn commit 時(shí)的默認(rèn)編輯器的環(huán)境變量$SVN_EDITOR=vi需要手動(dòng)設(shè)定,用kate好像有問(wèn)題

          3. 如果linux的登錄用戶名密碼都和svn的其中一個(gè)用戶名密碼相同時(shí),在checkout的時(shí)候不會(huì)要求輸 入用戶名密碼直接就可以checkout出來(lái)。比如:linux有個(gè)用戶wooin,svn也有一個(gè)用戶wooin,并且密碼 都是一樣的,當(dāng)用wooin登錄linux后,執(zhí)行checkout,可以直接提取出源碼文件,不用輸入認(rèn)證信息。

          4. 在svn使用過(guò)程中牽扯到幾種權(quán)限:文件系統(tǒng)的權(quán)限,linux系統(tǒng)權(quán)限,svn用戶的權(quán)限,apache進(jìn)程的權(quán)限。

          文件系統(tǒng)的權(quán)限,linux系統(tǒng)權(quán)限:這里相同的意思,就是平時(shí)大家使用linux時(shí)文件夾和文件的訪問(wèn)權(quán)限。在 svn建立倉(cāng)庫(kù),文件夾,配置文件的時(shí)候用svnroot用戶,并將倉(cāng)庫(kù)權(quán)限設(shè)置為700,不允許其他用戶直接通過(guò) 文件系統(tǒng)查看,只能由svnroot進(jìn)行管理。

          apache進(jìn)程的權(quán)限:因?yàn)樗懈鷤}(cāng)庫(kù)傳輸?shù)牟僮鞫际峭ㄟ^(guò)apache進(jìn)程進(jìn)行的,所以即使你給svn用戶設(shè)置了 很大的權(quán)限,但是apache進(jìn)程沒(méi)有訪問(wèn)倉(cāng)庫(kù)或者相關(guān)文件的權(quán)限也沒(méi)有用,apache進(jìn)程的權(quán)限設(shè)置在 /usr/local/apache2/conf/httpd.conf 文件中配置,找到文件中的這兩行:
          User daemon # 將daemon改為svnroot,讓apache進(jìn)程以svnroot的身份運(yùn)行
          Group daemon

          svn用戶的權(quán)限:就是在repository/authz.conf文件中設(shè)置的權(quán)限信息,是svn用來(lái)管理倉(cāng)庫(kù)訪問(wèn)權(quán)限的。

          5. svn服務(wù)器設(shè)置有兩種方式:http 和 svnserve。這里介紹的是http方法

          6. 在/etc/profile的結(jié)尾設(shè)置一些svn啟動(dòng)時(shí)要做的工作
          # start apache server for svn
          /usr/sbin/apachectl start
          export SVN_EDITOR=vi

          7. APR libraries 安裝 SVN 的時(shí)候最好指定 --with-apr= 和 --with-apr-util= 參數(shù)到 Apache 安裝的根目錄
          (ServerRoot)下,而不是使用缺省的 SVN 安裝包中自帶的 apr 。否則如果你安裝的 Apache
          版本不同有可能導(dǎo)致 APR 庫(kù)不匹配,出現(xiàn)類似:
          Can't set position pointer in file '/svn/test/db/revs/1': Invalid argument 的錯(cuò)誤。
          Updated 2006-04-20 16:30 -- 比如說(shuō)如果你安裝的是apache 2.2.0版本,就需要在編譯安裝svn的時(shí)候指定
          --with-apxs和--with-apr參數(shù)到你的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
          ? ?
          ? ?
          ? ?

          參考資料:
          1. SVN學(xué)習(xí)筆記
          2. Subversion版本管理器簡(jiǎn)單配置說(shuō)明
          3. 關(guān)于Subversion的安裝、配置和權(quán)限管理
          posted on 2006-08-10 11:07 Alex 閱讀(426) 評(píng)論(0)  編輯  收藏 所屬分類: configuration
          主站蜘蛛池模板: 承德市| 鹿邑县| 安徽省| 应城市| 大庆市| 鹤壁市| 苗栗县| 江源县| 嘉兴市| 威海市| 华容县| 旅游| 满城县| 太原市| 平遥县| 鄂伦春自治旗| 栾川县| 蛟河市| 吕梁市| 贞丰县| 淮阳县| 锡林郭勒盟| 论坛| 凤翔县| 贵溪市| 策勒县| 潜江市| 共和县| 金寨县| 华宁县| 永清县| 新建县| 晴隆县| 柏乡县| 丹阳市| 舒城县| 洞头县| 临朐县| 婺源县| 天台县| 金山区|