<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    Sealyu

    --- 博客已遷移至: http://www.sealyu.com/blog

      BlogJava :: 首頁 :: 新隨筆 :: 聯系 :: 聚合  :: 管理 ::
      618 隨筆 :: 87 文章 :: 225 評論 :: 0 Trackbacks

    1. 本文需要兩個文件,httpd和subversion。
    •httpd是web服務器,用來通過web訪問subversion, 官方網站: http://httpd.apache.org/
    下載網頁:http://archive.apache.org/dist/httpd/,在這里可以下載到httpd-2.2.2.tar.gz。
    •subversion就是本文的主角,官方網 站: http://subversion.tigris.org/
    subversion-1.4.3.tar.gz的 下載頁為:
    http://subversion.tigris.org/servlets/ProjectDocumentList?folderID=260&expandFolder=74
    2. 新建一個用戶:svnroot
    # useradd svnroot
    最好不要讓root用戶參與到svn的權限管理和日常的運行和維護工作中來,但是下面的一些安裝和配置操作還是 需要root用戶來完成的,因為有些操作只有root才能做。
    3. 編譯安裝httpd (root用戶操作):
    //解壓apache安裝包
    # tar xvzf httpd-2.2.2.tar.gz
    //進入解壓后的目錄
    # cd httpd-2.2.2
    //配置apache安裝,前兩個參數是必須要加的,你還可以根據您的需要添加其他的 參數。
    //后面的參數制定你要把apache安裝哪里

    # ./configure --enable-dav --enable-so --prefix=/usr/local/apache/
    # make
    //安裝
    # make install
    # cd /usr/local/apache/bin
    //啟動apache服務
    # ./apachectl start
    //打開瀏覽器http://localhost/如果有測試頁"It works!"出現則證明已經安裝成功。

    4. 安裝Subversion
    //解壓SubVersion安裝包 (root用戶進行下面的操作)
    # tar xvzf Subversion-1.4.3.tar.gz
    //進入解壓后的目錄
    # cd Subversion-1.4.3
    //配置subversion安裝
    #./configure --with-apxs=/usr/local/apache/bin/apxs --prefix=/usr/local/subversion
    --with-apr=/usr/local/apache --with-apr-util=/usr/local/apache --with-ssl --with-zlib
    --enable-maintainer-mode
    # make
    //安裝
    # make install
    //創建庫文件所在的目錄 (svnroot用戶進行下面的操作)
    # mkdir /home/svnroot/repository
    //進入subversion的bin目錄
    # cd /usr/local/subversion/bin
    //創建倉庫"test"
    # ./svnadmin create /home/svnroot/repository/test
    # cd /home/svnroot/repository/test
    //看看是不是多了些文件,如果是則說明Subversion安裝成功了
    # ls –l
    # cd /usr/local/subversion/bin
    //這條語句將把路徑/home/user/import下找到的文件導入到你創建的 Subversion 倉庫中去,
    //提交后的修訂版為1。

    # ./svn import /home/user/import file:///home/svnroot/repository/test –m "注釋"
    //不讓其他人有修改目錄的權限
    # chmod 700 /home/svnroot/repository

    5. 修改Apache配置文件
    # vi /usr/local/apache/conf/httpd.conf
    //找到以下行
    User daemon # 將daemon改為svnroot,讓apache進程以svnroot的身份運行
    Group daemon

    //如果先安裝apache,以下兩行將自動添加,如未找到請手動添加
    LoadModule dav_svn_module modules/mod_dav_svn.so
    LoadModule authz_svn_module modules/mod_authz_svn.so
    //添加以下內容到httpd.conf
        <Location /svn>
        DAV svn
        SVNParentPath /home/svnroot/repository/ //svn父目錄
        AuthzSVNAccessFile /home/svnroot/repository/authz.conf //權限配置文件
        AuthType Basic //連接類型設置
        AuthName "Subversion.zoneyump" //連接框提示
        AuthUserFile /home/svnroot/repository/authfile // 用戶配置文件
        Require valid-user //采用何種認證
        </Location>
        //其中authfile是通過
       //htpasswd –b[c] /home/svnroot/repository/authfile username password來創建的
        //"Require valid-user"告訴apache在authfile中所有的用戶都可以訪問。如果沒有它,
        //則只能第一個用戶可以訪問新建庫

    6. 重啟apache
    # ./usr/local/apache/bin/apachectl restart
    //打開瀏覽器訪問http://localhost/svn/test/,如果有東 西顯示就說明成功

    7. 權限管理
    1)增加用戶
    # htpasswd -[c] /home/svnroot/repository/authfile wooin
    //第一次設置用戶時使用-c表示新建一個用戶文件。回車后輸入用戶密碼,
    //要特別注意/home/svnroot/repository/authfile文件的所有者為svnroot而非root用戶
    //如果為root請修改所有者

    # chown svnroot:svnroot   /home/svnroot/repository/authfile
    //完成對用戶 的增加
    # htpasswd authfile 用戶名(加入新的用戶)
    2)權限分配
    //要特別注意/home/svnroot/repository/authz.conf文件的所有者為svnroot而非root用戶
    //如果為root請修改所有者為svnroot
    # chown svnroot:svnroot   /home/svnroot/repository/authz.conf
    # vi /home/svnroot/repository/authz.conf
        [test:/] //這表示,倉庫test的根目錄下的訪問權限
        wooin = rw //test倉庫wooin用戶具有讀和寫權限
        bao = r //test倉庫bao用戶具有讀權限
        [test2:/] //test2倉庫根目錄下的訪問權限
        wooin = r //wooin用戶在test2倉庫根目錄下只有讀權限
        bao = //bao用戶在 test2倉庫根目錄下無任何權限
        [/] //這個表示在所有倉庫的根目錄下
        * = r //這個表示對所有的用戶都具有讀權限
        #[groups] //這個表示群組設置
        #svn1-developers = wooin, bao //這個表示某群 組里的成員
        #svn2-developers = wooin
        #[svn1:/]
       #@svn1-developers = rw //如果在前面加上@符號,則表 示這是個群組權限設置
    將這個設置完成后。重啟Apache,就可以通過
    http://localhost/svn/test
    這個URL來訪問倉庫了,當然,受權限的限制,必須是合法用戶才能訪問且具有相應的權限
    8. 一些備忘:
    1. svn checkout http://localhost/svn/hello.world

    2. svn commit 時的默認編輯器的環境變量$SVN_EDITOR=vi需要手動設定,用kate好像有問題

    3. 如果linux的登錄用戶名密碼都和svn的其中一個用戶名密碼相同時,在checkout的時候不會要求輸 入用戶名密碼直接就可以checkout出來。比如:linux有個用戶wooin,svn也有一個用戶wooin,并且密碼 都是一樣的,當用wooin登錄linux后,執行checkout,可以直接提取出源碼文件,不用輸入認證信息。

    4. 在svn使用過程中牽扯到幾種權限:文件系統的權限,linux系統權限,svn用戶的權限,apache進程的權限。

    文件系統的權限,linux系統權限:這里相同的意思,就是平時大家使 用linux時文件夾和文件的訪問權限。在 svn建立倉庫,文件夾,配置文件的時候用svnroot用戶,并將倉庫權限設置為700,不允許其他用戶直接通過 文件系統查看,只能由svnroot進行管理。

    apache進程的權限:因為所有跟倉庫傳輸的操作都是通過 apache進程進行的,所以即使你給svn用戶設置了 很大的權限,但是apache進程沒有訪問倉庫或者相關文件的權限也沒有用,apache進程的權限設置在 /usr/local/apache/conf/httpd.conf 文件中配置,找到文件中的這兩行:
    User daemon # 將daemon改為svnroot,讓apache進程以svnroot的身份運行
    Group daemon

    svn用戶的權限:就是在authz.conf文件中設置的權限信息,是svn用來管理倉庫訪問權限的。

    5. svn服務器設置有兩種方式:http 和 svnserve。這里介紹的是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 安裝的根目錄(ServerRoot)下,而不是使用缺省的 SVN 安裝包中自帶的 apr 。否則如果你安裝的 Apache版本不同有可能導致 APR 庫不匹配,出現類似:
    Can't set position pointer in file '/svn/test/db/revs/1': Invalid argument 的錯誤。
    Updated 2006-04-20 16:30 -- 比如說如果你安裝的是apache 2.2.0版本,就需要在編譯安裝svn的時候指定
    --with-apxs和--with-apr參數到你的apache.2.0安裝目錄下:
    ./configure --prefix=${subversionInstallFolder} /
    --with-apxs=${apacheInstallFolder}/bin/apxs /
    --with-apr=${apacheInstallFolder} /
    --with-apr-util=${apacheInstallFolder} /
    --with-ssl /
    --with-zlib /
    --enable-maintainer-mode
    9. 重新部署SVN倉庫
    需要將目前的某個倉庫導出,并導入到另一個倉庫(可以導入到該倉庫的指定目錄下),
    要用到以下的命令:
    // 導出所有版本到stn.dump文件中
    # svnadmin dump /home/svnroot/sonatina/ > stn.dump
    // 或者也可以只導出其中一個版本
    # svnadmin dump /home/svnroot/sonatina/ --revision 10 > stn.r10.dump
    // 或者也可以導出多個版本,比如0-10版本
    # svnadmin dump /home/svnroot/sonatina/ --revision 0:10 > stn.r0-10.dump

    // 導入到sonatinab/trunk目錄下,如果不指定--parent-dir,則會導入到根目錄sonatinab/下
    # svnadmin load /home/svnroot/sonatinab/ --parent-dir trunk < stn.r0-10.dump

    posted on 2008-07-13 20:16 seal 閱讀(210) 評論(0)  編輯  收藏 所屬分類: Linux
    主站蜘蛛池模板: 亚洲精品国产精品乱码不卞| 亚洲国产成人AV网站| 国产免费牲交视频免费播放| 成人永久免费福利视频网站| 亚洲精品中文字幕| 在线观看免费成人| 国产成人 亚洲欧洲| 免费二级毛片免费完整视频| 色老头综合免费视频| 久久亚洲色一区二区三区| 中文字幕在线视频免费观看| 亚洲精品乱码久久久久久| 99热免费在线观看| 亚洲性色高清完整版在线观看| 无码国产精品一区二区免费虚拟VR| 亚洲乱码在线视频| 国产精品美女自在线观看免费 | 亚洲一区AV无码少妇电影| 久久精品国产亚洲AV麻豆王友容| 亚洲日韩乱码中文无码蜜桃 | 全部免费毛片免费播放| 一级午夜免费视频| 亚洲AV无码乱码国产麻豆| 美女视频黄免费亚洲| 无码天堂va亚洲va在线va| 中文字幕在线亚洲精品| 三年片在线观看免费观看大全动漫 | 女人张开腿给人桶免费视频 | 性色av免费观看| 免费一级毛片不卡不收费| 久久免费区一区二区三波多野| 相泽南亚洲一区二区在线播放| 日韩电影免费在线观看中文字幕| 久久亚洲日韩看片无码| 国产免费观看网站| 日本高清免费观看| 亚洲av无码专区在线观看亚| 亚洲色欲久久久综合网东京热| 99久久久国产精品免费无卡顿| 窝窝影视午夜看片免费| 亚洲一区二区三区无码国产|