天天看點

Subversion-1.6.1(svn-1.6.1)+Apache-2.2.11

一、安裝前的準備工作

1.下載下傳 subversion-1.6.0.tar.gz: http://subversion.tigris.org/downloads/subversion-1.6.1.tar.gz

subversion-deps-1.6.0.tar.gz: http://subversion.tigris.org/downloads/subversion-deps-1.6.1.tar.gz

httpd-2.2.11.tar.gz: http://apache.freelamp.com/httpd/httpd-2.2.11.tar.gz

apr-1.3.3.tar,gz:   http://apache.freelamp.com/apr/apr-1.3.3.tar.gz

apr-util-1.3.4.tar.gz: http://apache.freelamp.com/apr/apr-util-1.3.4.tar.gz

zlib-1.2.3.tar.gz: http://www.zlib.net/zlib-1.2.3.tar.gz

Berkeley DB 4.7.25.tar.gz

2.rpm -qa|grep httpd apr subversion ,如果有的話,全部解除安裝.

二、開始安裝

1.安裝apr

cd apr

./configure --prefix=/usr/local/apr

make

make install

2.安裝apr-util

cd apr-util

./configure --prefix=/usr/local/apr-util --with-apr=/usr/local/apr/

make

make install

3.安裝zlib

cd zlib

./configure

make

make install

4.安裝httpd

tar zxvf httpd-2.2.11.tar.gz

cd httpd-2.2.11

./configure --prefix=/usr/local/apache2 --with-apr=/usr/local/apr/bin/apr-1-config --with-apr-util=/usr/local/apr-util/bin/apu-1-config --enable-so --enable-dav --enable-maintainer-mode --enable-rewrite

make

make install

5.解壓subversion

tar zxvf subversion-1.6.1.tar.gz

tar zxvf subversion-deps-1.6.1.tar.gz (這個解壓後會自動放到前面一個解壓的目錄裡的)

安裝serf

cd subversion-1.6.1/serf

./configure --with-apr=/usr/local/apr --with-apr-util=/usr/local/apr-util/

make

make install

安裝 neon

cd subversion-1.6.1/neon

./configure --with-apr=/usr/local/apr --with-apr-util=/usr/local/apr-util/

make

make install

安裝 sqlite

cd subversion-1.6.1/sqlite-amalgamation

./configure --prefix=/usr/local/sqlite3

make

make install

6.安裝subversion

cd subversion-1.6.1

./configure --prefix=/usr/local/svn --with-apxs=/usr/local/apache2/bin/apxs --with-apr=/usr/local/apr/bin/apr-1-config --with-apr-util=/usr/local/apr-util/bin/apu-1-config --with-sqlite=/usr/local/sqlite3 --with-ssl --with-zlib=/usr/lib --enable-maintainer-mode

make

make install

注意:configure時會警告要DBD的支援,可以忽略,但我們還是把它裝上

7.安裝db-4.7.25.tar.gz

tar -zxvf db-4.7.25.tar.gz

cd db-4.7.25/dist

./configure(我執行這一步的時候 報錯說該檔案目錄下不可以 然後建議我換到../build_unix下重新執行,然後照做 OK)

make

make install

vi /etc/ld.so.conf 加入下面一行

/usr/local/BerkeleyDB.4.7/lib #儲存

ldconfig

(一下兩個指令提示我要覆寫某些檔案麼 然後我執行覆寫)

cp /usr/local/BerkeleyDB.4.7/include/* /usr/include   

cp /usr/local/BerkeleyDB.4.7/lib/* /usr/lib

重新執行安裝  (沒搞明白這裡的重新執行安裝是指的安裝什麼 然後隻是安裝了這個db-4.7.25.tar.gz)

三、配置

1.vi /usr/local/apache/conf/httpd.conf 檢視是否有如下2行,有就對了

LoadModule dav_svn_module modules/mod_dav_svn.so

LoadModule authz_svn_module modules/mod_authz_svn.so

2.建立版本庫

mkdir /code (代碼的根目錄,根據自己情況)

/usr/local/svn/bin/svnadmin create /code/test (建一個test項目)

ls /code/test 裡面多了些檔案就對了(剛剛執行到這裡的時候 檔案裡面沒有dav 當時以為做錯了什麼然後硬着頭皮到最後 完全搞定的時候 再次檢視 就有了dav檔案夾了)

//這條語句将把路徑/home/wordspace下找到的檔案導入到你建立的Subversion 倉庫中去,

//送出後的修訂版為1。(随便找一個檔案目錄 就可以的)

# ./svn import /home/wordspace file:///code/test –m "注釋"

//不讓其他人有該目錄的權限

# chmod 700 /code/test   //這句話(也許不是)有時導緻用戶端不能通路:

svn: 送出失敗(細節如下): 

svn: Can't create directory '/code/test/db/transactions/1-2.txn': Permission denied

這樣就可以了:

chown -R daemon /code/test

chmod -R 755 /code/test

3.配置Apache來支援SVN

vi /usr/local/apache/conf/httpd.conf

在末尾加上如下内容:

<Location /svn>

   DAV svn

   SVNParentPath /code #svn父目錄

   AuthzSVNAccessFile /code/test/conf/authz #權限配置檔案

   AuthType Basic    #連接配接類型設定

   AuthName "Subversion" #連接配接框提示

   AuthUserFile /code/test/conf/passwd #使用者配置檔案

   Require valid-user #采用何種認證

</Location>

儲存退出

4.啟動 apache

cd /usr/local/apache2/bin

./apachectl start 

打開IE,輸入:http://IP/svn/test 或 http://localhost/svn/test

會彈出一個輸使用者和密碼的框就對了

httpd: Could not reliably determine the server's fully qualified domain name, using 127.0.0.1 for ServerName

#vi  /usr/local/apache2/conf/httpd.conf

找到#ServerName www.example.com:80   把#去掉,再重新開機apache即可沒事了。

5.建立使用者配置檔案

htpasswd -c /code/test/conf/passwd user1        //必須要這樣建立.

回車輸入密碼 (-c是第一次要建立檔案)

htpasswd /code/test/conf/passwd user2

回車輸入密碼

.

.等

6.建立權限配置檔案

vi /code/test/conf/authz

[test:/]

user1 = rw

user2 = r

儲存退出

注:

[test:/] //這表示,倉庫test的根目錄下的通路權限

    user1 = rw //test倉庫user1使用者具有讀和寫權限

    user2 = r //test倉庫user2使用者具有讀權限

    [test2:/] //test2倉庫根目錄下的通路權限

    user1 = r //user1使用者在test2倉庫根目錄下隻有讀權限

    user2 = //user2使用者在 test2倉庫根目錄下無任何權限

   [/] //這個表示在所有倉庫的根目錄下

   * = r //這個表示對所有的使用者都具有讀權限

   #[groups] //這個表示群組設定

   #svn1-developers = user1, user2 //這個表示某群組裡的成員

   #svn2-developers = user1

   #[svn1:/]

   #@svn1-developers = rw //如果在前面加上@符号,則表示這是個群組權限設定

7.重新開機Apache

cd /usr/local/apache2/bin

./apachectl restart 

打開IE,輸入:http://IP/svn/test 或 http://localhost/svn/test

會彈出一個輸使用者和密碼的框

輸入你的添加的使用者和密碼就ok了