一 、先介紹一下Subversion和apache,apr,apr-util的關(guān)系
很多朋友初次接觸Subversion時不是很理解subversion和apache的關(guān)系。
我在這里簡單說明一下svn服務(wù)器和客戶端的安裝說明。
1.1服務(wù)器
subversion服務(wù)器是不需要apache的,但是可以使用apache,視具體情況來選擇。
1、如果只要通過file://或svn://來訪問,則不需要apache,只安裝svn即可,使用svnserve來作為服務(wù)。
2、如果你要建立一個可以通過http://或https://來訪問的版本庫服務(wù)器,則你需要使用apache。
1.2客戶端
在windows下,不管你要訪問的是什么類型的服務(wù)器,只要安裝一個TortoiseSVN就可以了,開發(fā)者已經(jīng)幫你搞定一切。
在類Linux系統(tǒng)下,如果你通過file://或svn://來訪問,則只要編譯安裝svn就可以,
如果通過http://訪問,則要同neon編譯,
如果通過https://訪問,則要同帶ssl支持的neon編譯,
不論怎樣,都要同apr和apr-util編譯。
neon、apr、apr-util也很容易獲得,目前發(fā)布的subversion代碼都會有一個叫做subversion-deps-xxx的文件,比如1.4.3的就是subversion-deps-1.4.3.tar.bz2
對于訪問國外網(wǎng)站比較慢的朋友,下載Subversion和客戶端,可以到 http://www.iUseSVN.com ,因帶寬和流量有限,網(wǎng)站只對注冊用戶開放下載,這點有點麻煩,但是很值得,一是下載速度的確相當(dāng)快,二是里面有很多熱于與大家交流的Subversion愛好者
二、架設(shè)
2.1 首先準(zhǔn)備好相關(guān)的安裝包,我這里使用的是下列的幾個包
Apr : apr-1.2.12 和 apr-util-1.2.12
Apache : httpd-2.2.4.tar.gz
Subversion: subversion-1.4.5.tar.gz 和 subversion-deps-1.4.5.tar.gz
注意:在安裝過程中可能會提示需要安裝其他的包,根據(jù)具體的情況來安裝所需要的包,如果安裝過程很順利則說明你運氣好!
2.2、安裝和配置步驟:
1、安裝apr-1.2.12
# tar –zvxf apr-1.2.12.tar.gz
# cd apr-1.2.12
# ./configure /* 安裝不指定路徑時 默認(rèn)安裝到/usr/local/apr
# make ; make install
2、安裝 apr-util-1.2.12
# tar –zvxf apr-util-1.2.12.tar.gz
# cd apr-util-1.2.12
# ./configure - -with-apr=/usr/local/apr
# make ; make install
3、安裝 httpd-2.2.4.tar.gz
# tar –zvxf httpd-2.2.4.tar.gz
# cd httpd-2.2.4
# ./configure
--prefix=/usr/local/apache
--with-apr=/usr/local/apr/bin/apr-1-config
--with-apr-util=/usr/local/apr/bin/apu-1-config
--enable-modules=so /* DSO模式安裝apache (或 --enable-so)
--enable-dav
--enable-maintainer-mode
-- enable-rewrite
# make ; make install
安裝好后啟動apache
# /usr/local/apache/bin/apachectl –k start
用瀏覽器查看http://localhost/,得到it works,說明apache已經(jīng)配置成功了。
4、安裝和配置 subversion
#tar –zvxf subversion-1.4.5.tar.gz
#tar –zvxf subversion-deps-1.4.5.tar.gz /*這兩個自動解壓成一個包 subversion-1.4.5
#cd subversion-1.4.5
#rm –rf apr
#rm -rf apr-util
注意:SVN 依賴的APR版本要正確。如果Apache為2.0.x,對應(yīng)的APR版本應(yīng)為0.9.x;Apache為2.2.x,對應(yīng)的APR版本應(yīng)為1.2.x。由于subversion-deps包里的APR是0.9.x的,因此編譯svn時要刪除從deps里解壓出來的apr, apr-util,改而使用apache 2.2里提供的。(這里指定為開始安裝的apr目錄),這一點知識非常重要,自己之前多次安裝都沒成功,現(xiàn)在才明白是在這一點被卡住了,但最終還是被我解決了, 學(xué)習(xí),和不斷實踐 會使你不斷成長!
#./configure
--prefix=/usr/local/svn
--with-apxs=/usr/local/apache/bin/apxs
--with-apr=/usr/local/apr/bin/apr-1-config
--with-apr-util=/usr/local/apr/bin/apu-1-config
--with-ssl
--with-zlib
--enable-maintainer-mode
#make
#make install
確定一下svn有沒有安裝成功
#/usr/local/svn/bin/svnserve - -version
會看到相關(guān)版本信息!
完了再看看apache 的相關(guān)模塊有沒有加載!如下!
LoadModule dav_svn_module modules/mod_dav_svn.so
LoadModule authz_svn_module modules/mod_authz_svn.so
到此如果一直都順利的話就基本沒什么問題!繼續(xù)往下!
開始建立版本庫
#/usr/local/svn/bin/svnadmin create /svn/project/www /*創(chuàng)建倉庫"www"
#ls /svn/project/www /*查看有沒有創(chuàng)建好,如果多了一些文件則說明版本庫已經(jīng)創(chuàng)建好
導(dǎo)入項目文件到版本庫
下面這條語句將把路徑/share/www下找到的項目文件導(dǎo)入到你創(chuàng)建的/svn/project/www 倉庫中去,
提交后的修訂版為1
#/usr/local/svn/bin/svn import /share/www file:///svn/project/www -m “注釋”
配置提高svn版本庫的安全性
#chmod –R 700 /svn/project /*不讓其他人有該目錄的權(quán)限
注意: 直接這么chmod會導(dǎo)致svn客戶端無法訪問,同時需要修改apache配置文件./conf/httpd.conf文件,(如果你的水平不夠高的話,這一步可以先跳過,以免給自己找麻煩!等把服務(wù)完全搞定后再來進(jìn)一步提高安全性) 在httpd.conf文件中有這么一段內(nèi)容:
User daemon
Group daemon
把上述內(nèi)容改成:
User apache
Group apache
(我的系統(tǒng)在安裝apache的時候,自動增加了apache用戶和apache組,如果你系統(tǒng)沒有這個用戶和組,則請自己添加該用戶和組)
修改svn倉庫的所有者
#chown -R apache:apache /svn/project
5、配置apache支持svn
#vi /usr/local/apache/conf/httpd.conf
在文件末尾添加
DAV svn
SVNParentPath /svn/project (此處配置你的版本庫根目錄) --注意這里不要是svnpath
AuthType Basic (連接類型設(shè)置 基本驗證)
AuthName "Hello welcome to here" (此處字符串內(nèi)容修改為提示對話框標(biāo)題)
AuthUserFile /svn/passwd (此處修改為訪問版本庫用戶的文件,
用apache 的htpasswd命令生成)
AuthzSVNAccessFile /svn/auth.conf (此處修改為訪問版本庫權(quán)限的文件)
Require valid-user ("Require valid-user"告訴apache在authfile中所有的用戶都可以訪問。
如果沒有它,則只能第一個用戶可以訪問新建庫)
保存文件退出!
重新啟動apache
# /usr/local/apache/bin/apachectl –k restart
先使用瀏覽器檢測一下
打開瀏覽器訪問http://192.168.0.1/svn/www 會提示輸入用戶名密碼
等到完成下面步驟就可以進(jìn)去訪問了,進(jìn)去后如果有東西顯示就說明成功。
下面就是對svn的用戶和權(quán)限配置管理
6、配置svn權(quán)限管理(即authz.conf的配置)
1 . 添加用戶:
# /usr/local/apache/bin/htpasswd –c /svn/passwd user1
第一次設(shè)置用戶時使用-c表示新建一個用戶文件?;剀嚭筝斎胗脩裘艽a,完成對用戶的增加
第二次添加用戶不需要帶 –c 參數(shù) 如:
# /usr/local/apache/bin/htpasswd /svn/passwd user2
2 . 權(quán)限分配:
#vi /svn/auth.conf
[groups] /*這個表示群組設(shè)置
Admin=usr1,user2 /*這個表示admin群組里的成員 user1,user2
Develop=u1, u2 /*這個表示Develop群組里的成員 u1,u2
[www:/] /*這表示,倉庫www的根目錄下的訪問權(quán)限
user1 = rw /*www倉庫user1用戶具有讀和寫權(quán)限
user2 = r /* www倉庫userl用戶具只有讀權(quán)限
@develop=rw /*這表示 群 develop的成員都具有讀寫權(quán)限
[/] /*這個表示在所有倉庫的根目錄下
* = r /*這個表示對所有的用戶都具有讀權(quán)限
注意:在編輯authz.conf文件時,所有行都必須要頂頭寫,不能有縮行出現(xiàn),否則會報錯:"Access denied: 'user1' ",里面的內(nèi)容可以根據(jù)自己的需要自行添加,不必與我上面所寫的相同!
7、重啟apache服務(wù)和啟動svn服務(wù)
#/usr/local/apache/bin/apachectl –k restart
就可以通過 http://192.168.0.1/svn/www 這個URL來訪問倉庫了,當(dāng)然,受權(quán)限的限制,必須是合法用戶才能訪問且具有相應(yīng)的權(quán)限
最后啟動svn
#/usr/local/svn/bin/svn -d -r /svn/project
-d 表示以 daemon 方式(后臺運行)運行
-r /svn/project 指定根目錄是/svn/project
檢查服務(wù)器是否啟動正常:
#ps –ef|grep svnserve
如果顯示如下,即為啟動成功:
Root 6941 1 0 15:07 ? 00:00:00 svnserve -d ——listen-port 9999 -r /svn
接下來客戶端TortoiseSVN直接安裝,重啟客戶端計算機。
OK.到此 APACHE+SVN服務(wù)器的架設(shè)已經(jīng)完成
三、附錄:
linux 下命令行查看Apache是否安裝、路徑、版本。
SSH訪問遠(yuǎn)程linux.如何查看里邊是否安裝了Apache ,安裝路徑,當(dāng)前版本。
如果你是問linux自動安裝的Apache的話,直接使用Apachectl-v命令,如果告訴你沒有這個方法就可以知道系統(tǒng)沒有安裝Apache,如果已經(jīng)安裝了則顯示Apache的版本,至于安裝目錄,使用Apachectl -c就可以知道了。
使用Apachectl的前提條件也得你知道Apache源碼安裝的全路徑啊,一般 是/usr/local/Apache2/bin/Apachectl。 如通是通過rpm包安裝的話直接rpm -q httpd 就能看有沒有安裝了