apache+svn服務器安裝配置全過程

首先需要準備環境:

yum -y install gcc

yum -y install openssl*

Linux系統下Subversion 安裝與配置

一 、首先準備好相關的安裝包,我這裏使用的是下列的幾個包

Apr : apr-1.2.11 和 apr-util-1.2.10

Apache : httpd-2.2.4.tar.gz

Subversion: subversion-1.6.1.tar.gz 和 subversion-deps-1.6.1.tar.gz

注意:在安裝過程中可能會提示需要安裝其他的包,根據具體的情況來安裝所需要的包,如果安裝過程很順利則說明你運氣好!

二、安裝和配置步驟:

1、安裝apr-1.2.11

# tar –zvxf apr-1.2.11.tar.gz
# cd apr-1.2.11
# ./configure
# make ; make install
# cd ..

2、安裝 apr-util-1.2.10
# tar –zvxf apr-util-1.2.10.tar.gz
# cd apr-util-1.2.10
# ./configure --with-apr=/usr/local/apr
# make ; make install
# cd ..
3、安裝 httpd-2.2.4.tar.gz
# tar –zvxf httpd-2.2.4.tar.gz
# cd httpd-2.2.4
./configure --prefix=/opt/app/apache2 --enable-so --enable-rewrite --enable-dav --enable-maintainer-mode --with-apr=/usr/local/apr/bin/apr-1-config --with-apr-util=/usr/local/apr/bin/apu-1-config

# ./configure --prefix=/opt/app/apache --with-apr=/usr/local/apr/bin/apr-1-configl --with-apr-util=/usr/local/apr/bin/apu-1-config --enable-so --enable-dav --enable-maintainer-mode --enable-rewrite
如報錯安裝(yum -y install libtool*)
(./configure --prefix=/opt/app/apache2 --enable-so --with-mpm=prefork --enable-rewrite=shared --enable-deflate=shared --enable-expires=shared --disable-FEATURE --disable-authn-file --disable-authn-default --disable-authz-groupfile --disable-authz-user --disable-authz-default --disable-auth-basic --disable-include --disable-filter --disable-charset-lite --disable-status --disable-autoindex --disable-asis --disable-negotiation --disable-actions --disable-userdir --disable-alias)生生

# make && make install
安裝好後啓動apache
# /opt/app/apache/bin/apachectl –k start
用瀏覽器查看http://localhost/,得到it works,說明apache已經配置成功了。

4、安裝和配置 subversion
#tar –zvxf subversion-1.6.1.tar.gz
#tar –zvxf subversion-deps-1.6.1.tar.gz /*這兩個自動解壓成一個包 subversion-1.6.1
#cd subversion-1.6.1
#rm –rf apr
#rm -rf apr-util
注意:SVN 依賴的APR版本要正確。如果Apache爲2.0.x,對應的APR版本應爲0.9.x;Apache爲2.2.x,對應的APR版本應爲1.2.x。 由於subversion-deps包裏的APR是0.9.x的,因此編譯svn時要刪除從deps裏解壓出來的apr, apr-util,改而使用apache 2.2裏提供的。(這裏指定爲開始安裝的apr目錄),這一點知識非常重要,自己之前多次安裝都沒成功,現在才明白是在這一點被卡住了,但最終還是被我解 決了, 學習,和不斷實踐 會使你不斷成長!

#./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 --enable-maintainer-mode
(以下紅色的字,如果沒報錯,就忽略,不用管紅色的字)

注意這步也如果出現configure: error: no XML parser was found: expat or libxml 2.x required 這是因爲還有一個包沒有安裝expat 可以 yun install expat* 直接安裝
有可能報"/usr/lib/libexpat.so: could not read symbols: File in wrong format"這個錯誤
出現這個問題,主要原因是libexpat的兼容性,特別對是64bit服務器的兼容性。現在新的服務器基本都採用64位了,但是默認的/usr/lib/庫是32位的,64位的庫默認在/usr/lib64/目錄下,所以編譯64位軟件會遇到不少問題。
下面介紹一些解決思路:
陳運文
1)最直接的方法:
cp /usr/lib64/libexpat.* /usr/lib/
(將/usr/lib64/目錄下的 libexpat.a、libexpat.la         libexpat.so 文件拷貝到/usr/lib/目錄)
cp覆蓋以後,make就可以了
2)configure裏手工指定庫文件路徑
./configure LDFLAGS="-L/usr/lib64 -L/lib64" --prefix=/usr/local/apache --enable-so --enable-expires --enable-rewrite --enable-headers --enable-deflate  --enable-dav --enable-maintainer-mode
3)另一種設置configure的辦法是,將configure更改爲:
./configure –enable-lib64 -libdir=/usr/lib64 –enable-ssl –with-ssl=/usr/local/ssl –enable-module=so –prefix=/usr/local/apache
4)方法四:編譯時增加編譯參數--with-expat=builtin
之前介紹了,由於64位服務器下編譯腳本在定位系統 expat支持時有些問題。使用自帶的expat來編譯,也可以解決這個問題了。方法如下:
# ./configure --prefix=/usr/local/apache2 --enable-modules=so--enable-rewrite --with-expat=builtin




#make

#make install

確定一下svn有沒有安裝成功

#/usr/local/svn/bin/svnserve --version

會看到相關版本信息!

完了再看看apache 的相關模塊有沒有加載!如下!

LoadModule dav_svn_module modules/mod_dav_svn.so
LoadModule authz_svn_module modules/mod_authz_svn.so

到此如果一直都順利的話就基本沒什麼問題!繼續往下!

開始建立版本庫

#/usr/local/svn/bin/svnadmin create /svn/project/www /*創建倉庫"www"

#ls /svn/project/www /*查看有沒有創建好,如果多了一些文件則說明版本庫已經創建好

導入項目文件到版本庫

下面這條語句將把路徑/share/www下找到的項目文件導入到你創建的/svn/project/www 倉庫中去,
提交後的修訂版爲1

#/usr/local/svn/bin/svn import /share/www file:///svn/project/www -m “註釋”

配置提高svn版本庫的安全性

#chmod –R 700 /svn/project /*不讓其他人有該目錄的權限

注意: 直接這麼chmod會導致svn客戶端無法訪問,同時需要修改apache配置文件./conf/httpd.conf文件,(如果你的水平不夠高的話, 這一步可以先跳過,以免給自己找麻煩!等把服務完全搞定後再來進一步提高安全性) 在httpd.conf文件中有這麼一段內容:
User daemon
Group daemon

把上述內容改成:
User apache
Group apache
(我的系統在安裝apache的時候,自動增加了apache用戶和apache組,如果你係統沒有這個用戶和組,則請自己添加該用戶和組)
修改svn倉庫的所有者
#chown -R apache:apache /svn/project

5、配置apache支持svn

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

把ServerName www.example.com:80 去掉#並改爲 ServerName IP:80

在文件末尾添加

<Location /svn>
DAV svn
SVNParentPath /svn/project (此處配置你的版本庫根目錄)
AuthType Basic (連接類型設置 基本驗證)
AuthName "Hello welcome to here" (此處字符串內容修改爲提示對話框標題)
AuthUserFile /svn/passwd (此處修改爲訪問版本庫用戶的文件,用apache 的htpasswd命令生成)
AuthzSVNAccessFile /svn/auth.conf (此處修改爲訪問版本庫權限的文件)
Require valid-user ("Require valid-user"告訴apache在authfile中所有的用戶都可以訪問。如果沒有它,則只能第一個用戶可以訪問新建庫)

</location>

保存文件退出!

重新啓動apache

# /usr/local/apache/bin/apachectl –k restart

先使用瀏覽器檢測一下

打開瀏覽器訪問http://192.168.0.1/svn/www 會提示輸入用戶名密碼

等到完成下面步驟就可以進去訪問了,進去後如果有東西顯示就說明成功。

下面就是對svn的用戶和權限配置管理

6、配置svn權限管理(即authz.conf的配置)

1 . 添加用戶:

# /usr/local/apache/bin/htpasswd –c /svn/passwd user1
第一次設置用戶時使用-c表示新建一個用戶文件。回車後輸入用戶密碼,完成對用戶的增加

第二次添加用戶不需要帶 –c 參數 如:

# /usr/local/apache/bin/htpasswd /svn/passwd user2

2 . 權限分配:

#vi /svn/auth.conf

[groups] /*這個表示羣組設置

Admin=usr1,user2 /*這個表示admin羣組裏的成員 user1,user2

Develop=u1, u2     /*這個表示Develop羣組裏的成員 u1,u2

[www:/] /*這表示,倉庫www的根目錄下的訪問權限

user1 = rw /*www倉庫user1用戶具有讀和寫權限
user2 = r   /* www倉庫userl用戶具只有讀權限

@develop=rw /*這表示 羣 develop的成員都具有讀寫權限
[/] /*這個表示在所有倉庫的根目錄下
* = r /*這個表示對所有的用戶都具有讀權限

注意:在編輯authz.conf文件時,所有行都必須要頂頭寫,不能有縮行出現,否則會報錯:"Access denied: 'user1' ",裏面的內容可以根據自己的需要自行添加,不必與我上面所寫的相同!

7、重啓apache服務和啓動svn服務

#/usr/local/apache/bin/apachectl –k restart

就可以通過 http://192.168.0.1/svn/www 這個URL來訪問倉庫了,當然,受權限的限制,必須是合法用戶才能訪問且具有相應的權限

接下來客戶端TortoiseSVN直接安裝,重啓客戶端計算機。

導入數據到資料庫
svn import /要導入的目錄 file:///data/svn/svnroot -m “說明文字”
重新打開瀏覽器,輸入地址http://服務器ip/svn,輸入用戶名密碼
好了,成功!


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章