搞了一個subversion 花費了我兩天的時間,其間雖然有干其他的事情,但是來來回回的裝,搞的我是一點脾氣都沒有了,俗話說不經歷風雨真的見不到彩虹。就是這個意思. 原本本的下來
一.準備好安裝包
打算使用apache來瀏覽subversion ,并且apache2 支持subversion 所以下載了httpd-2.2.17.tar.gz.
還需要兩個包,一個是apr-1.3.8.tar.gz, 和一個apr-util-1.3.9.tar.gz ,而0.9 的版本的不支持apache2 所以請注意.
subversion 找一個最新的就可以.subverion-1.5.6.tar.gz.
subversion-deps-1.5.6.tar.bz2
好了文件準備好了,在做什么事之間 先要準備文件,把相關的資料多找一下,不必出了錯還要找很多的東西,浪費不少時間.
二.安裝步驟:
1:? 安裝apache:
tar -xzvf httpd.httpd-2.2.17.tar.gz.
cd httpd-2.2.9
./configure --prefix=/usr/local/apache --enable-so? --enable-dav:命令so模塊是用來提DSO支持的apache核心模塊,這里設置啟動 設置的安裝目錄 和參數
make
make install
進入/usr/local/apache/bin/apachectl start 就啟動了.?? : 在這里注意默認的端口是80 ,如果被占用的話,修改
../conf/httpd.conf , 文件中Listen 192.168.0.55:81 修改一下就可以了 可以用netstat -an |grep 80 來查看一下是否起來了
2.安裝apr,以及apr-util
先安裝apr.
./configure
make
make install
接著安裝apr-util
./configure --prefix=/usr/local/apr-util --with-apr=/usr/local/apr/ --with-berkeley-db=/usr/local/bdb(沒有可以不用)
(這步要把berkeley數據庫一起編譯進去,否則berkeley就白裝了) make
make
make install
3.安裝subversion
解壓 subverion-1.5.6.tar.gz. 和??? subversion-deps-1.5.6.tar.bz2 ,直接解壓就可以到一個目錄了就
進入subversion -1.5.6 之后發現仍然有 apr 和 apr-util .
可是 先前已經安裝了所以把該目錄下的 apr 和apr-util 刪除就可以了。
然后運行:
第一:?./configure --prefix=/usr/local/subversion --with-apxs=/usr/local/apache/bin/apxs
-with-apr=/usr/local/apr/bin/apr-1-config
--with-apr-util=/usr/local/apr-util/bin/apu-1-config----------------
##? apr-util=/usr/local/apr-util/bin/apu-1-config //這個的路徑自己看具體的文件后定
第二: make--------------
第三:?make install---------------
其中在make 這一步會出錯,出現編譯ssl 的錯誤.原因是
這是因為 Red Hat Linux 9.0 的 krb5-devel 套件把 kerberos 的 include file 放到了 /usr/kerberos/include 裡面,而不是一般位置的 /usr /include 這個目錄。而 openssl 支援 kerberos,因此在 compile 使用到 openssl 的程式就很容易發生找不到 kerberos 的 include file 的錯誤。
而解決的辦法相當簡單,首先當然要確定 krb5-devel 以及 krb5-libs 等套件確實有安裝在系統上,而不是根本沒安裝;接下來,建立以下的 symbolic links:
這是redhat 9.0 的原因,所以做以下的link 就可以了.
ln -s /usr/kerberos/include/com_err.h /usr/include/
ln -s /usr/kerberos/include/profile.h /usr/include/
ln -s /usr/kerberos/include/krb5.h /usr/include/
三、配置subversion
在裝subversion 之前最好把apache 啟動 起來了,然后就可以把模塊加入httpd.conf 中去了。然后在
/usr/local/subversion/bin/svnserve -d 下 把 svn 啟動起來
默認端口是3690 ,用service iptables stop 來 關掉firewall
第一:創建repository
/usr/local/subversion/bin/svnadmin /home/talend/svn/www 其中svn 目錄 必須存在,首先create 一個
尤其創建apache 可以默認加載一個apache 的用戶和組.
所以在httpd.conf 里把 user daemon group daemon 其中的daemon 改成apache,這樣apache 用戶具有了訪問apache 的權限。
chown -R apache:apache /home/talend/svn 這樣repository 就有只能由 apache 用戶來 訪問,增加了安全性.
第二:配置apache 支持svn
5、配置apache支持svn
vi /usr/local/apache/conf/httpd.conf (編輯httpd.conf文件)
在文件末尾添加
DAV svn
SVNParentPath /svn/project (此處配置你的版本庫根目錄)
AuthType Basic (連接類型設置 基本驗證)
AuthName "Hello welcome to here" (此處字符串內容修改為提示對話框標題)
AuthUserFile /home/talend/svn/passwd (訪問版本庫用戶的文件,用apache 的htpasswd命令生成)
AuthzSVNAccessFile /home/talend/svn/auth.conf (此處修改為訪問版本庫權限的文件)
Require valid-user ("Require valid-user"告訴apache在authfile中所有的用戶都可以訪問)
保存文件退出!
其中
/usr/local/apache/bin /htpasswd -c?? /home/talend/svn/passwd?? zsun ; zsun 是自己輸入的
然后會提示輸密碼,生成一個密碼文件
直接vi 一個auth.conf 在上邊的目錄下
/*[groups]
Admin= user1,user2?(這個表示admin群組里的成員 user1,user2);
Develop=u1, u2 (這個表示Develop群組里的成員 u1,u2)
[www:/] (這表示,倉庫www的根目錄下的訪問權限)
user1 = rw (www倉庫user1用戶具有讀和寫權限)
user2 = r ( www倉庫userl用戶具只有讀權限)
@develop=rw (這表示 群 develop的成員都具有讀寫權限)
[/] (這個表示在所有倉庫的根目錄下)
* = r (這個表示對所有的用戶都具有讀權限)
*/
我自己的寫成這樣
[groups]
Admin=zsun
[www:/]
zsun=rw
[/]
*=r
注意:在編輯authz.conf文件時,所有行都必須要頂頭寫,否則會報錯.
然后重新啟動subversion 和 apache
歡喜一大場.祝愿各位也能成功.有啥問題可以留言.
系統默認的apache 缺少dav 模塊..