linux架設subversion(svn)版本控制

來源:互聯網
上載者:User

http://mhbjava.javaeye.com/blog/26594

http://www.ybfq.com/lamp/svn-subversion-command-flowchart-in-website-design/

1.需要兩個檔案,httpd和subversion. httpd是web伺服器,用來通過web訪問subversion,httpd可以在apache官方網站上下載到

2.建立一個使用者:svnroot
最好不要讓root使用者參與到svn的許可權管理和日常的運行和維護工作中來,但是下面的一些安裝和配置操作還是 需要root使用者來完成的,因為有些操作只有root才能做。許可權問題很重要。曾經因為許可權問題折騰了一天。

3.編譯安裝httpd (root使用者操作):

//解壓apache2安裝包
# tar xvzf httpd-2.2.2.tar.gz
//進入解壓後的目錄
# cd httpd-2.2.2
//配置apache安裝,前兩個參數是必須要加的,你還可以根據您的需要添加其他的參數。
//後面的參數制定你要把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!"出現則證明已經安裝成功。

4.

安裝Subversion

//解壓SubVersion安裝包 (root使用者進行下面的操作)
# tar xvzf Subversion-1.3.1.tar.gz
//進入解壓後的目錄
# 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使用者進行下面的操作)
# 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設定檔

# cd /usr/local/apadche2/bin
//啟動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 //許可權設定檔
   AuthType Basic //連線類型設定
   AuthName "Subversion.zoneyump" //串連框提示
   AuthUserFile /home/svnroot/repository/authfile //使用者設定檔
   Require valid-user //採用何種認證
   </Location>
   //其中authfile是通過"htpasswd [–c] /home/svnroot/repository/authfile username password"來建立的
   //"Require valid-user"告訴apache在authfile中所有的使用者都可以訪問。如果沒有它,
   //則只能第一個使用者可以訪問建立庫

6.重啟apache

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

7.許可權管理
1)增加使用者

# htpasswd [-c] /home/svnroot/repository/authfile wooin
//第一次設定使用者時使用-c表示建立一個使用者檔案。斷行符號後輸入使用者密碼,完成對使用者的增加
# htpasswd authfile 使用者名稱(加入新的使用者)

2)許可權分配

# 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來訪問倉庫了,當然,受許可權的限制,必須是合法使用者才能訪問且具有相應的許可權

備忘:

1。apache進程的許可權:因為所有跟倉庫傳輸的操作都是通過apache進程進行的,所以即使你給svn使用者佈建了
很大的許可權,但是apache進程沒有訪問倉庫或者相關檔案的許可權也沒有用,apache進程的使用權限設定在
/usr/local/apache2/conf/httpd.conf 檔案中配置,找到檔案中的這兩行:

User daemon # 將daemon改為svnroot,讓apache進程以svnroot的身份運行
Group daemon

2。

在/etc/profile的結尾設定一些svn啟動時要做的工作

# start apache server for svn
/usr/sbin/apachectl start
export SVN_EDITOR=vi

3。/home/respository/svnroot下的檔案操作許可權有給svnroot.

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.