歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
Linux教程網 >> Linux管理 >> Linux配置 >> Linux下subversion1.6.16和apache安裝配置

Linux下subversion1.6.16和apache安裝配置

日期:2017/2/27 14:57:47   编辑:Linux配置
1 .下載安裝apr,下載地址:http://apr.apache.org
[root@localhost pub]# tar -jxvfapr-1.4.5.tar.bz2 首先解壓縮
[root@localhost pub]# mkdir /usr/local/apr 建立apr要安裝到的目錄
[root@localhost pub]# cd apr-1.4.5
[root@localhost apr-1.4.5]# ./configure –prefix=/usr/local/apr 開始配置編譯
[root@localhost apr-1.4.5]# make;make install 安裝

2.安裝apr-util
[root@localhost pub]# tar -jxvf apr-util-1.3.12.tar.bz2
[root@localhost pub]# cd apr-util-1.3.12
[root@localhost apr-util-1.3.12]# mkdir /usr/local/apr-util
[root@localhost apr-util-1.3.12]# ./configure –prefix=/usr/local/apr-util –with-apr=/usr/local/apr
[root@localhost apr-util-1.3.12]# make;make install

3.安裝neon
在安裝之前,需要確認libxml2,如果沒有安裝需要安裝上!
[root@localhost pub]# rpm -q libxml2
libxml2-2.6.26-2.1.2.8
[root@localhost pub]# rpm -q libxml2-devel
libxml2-devel-2.6.26-2.1.2.8
[root@localhost pub]# tar -zxvf neon-0.29.6.tar.gz //下載地址http://www.webdav.org/neon/,在這裡找
[root@localhost pub]# mkdir /usr/local/neon
[root@localhost pub]# cd neon-0.29.6
[root@localhost neon-0.29.6]# ./configure –prefix=/usr/local/neon
[root@localhost neon-0.29.6]# make;make install

4.安裝Berkeley DB
下載地址:http://www.oracle.com/technetwork/database/berkeleydb/downloads/index.html,不過需要先注冊後才能下載。
[root@localhost pub]# cd /usr/local/src
[root@localhost src]# tar -zxvf /var/ftp/pub/db-5.2.28.tar.gz
[root@localhost src]# cd db-5.2.28/
[root@localhost db-5.2.28]# cd build_unix/
[root@localhost build_unix]# mkdir /usr/local/berkeleydb
[root@localhost build_unix]# ../dist/configure –prefix=/usr/local/berkeleydb –enable-cxx
其中-enable-cxx就是編譯C++庫,這樣才能編譯Berkeley DB數據庫的PHP擴展php_db4.
yum -y install gcc-c++安裝一下就可以了

[root@localhost build_unix]# make;make install
[root@localhost build_unix]# echo ‘/usr/local/berkeleydb/lib/’>>/etc/ld.so.conf
[root@localhost build_unix]# ldconfig
這2句的作用就是通知系統Berkeley DB的動態鏈接庫在/usr/local/berkeleydb/lib/目錄

5.安裝sqlite-amalgamation-3.6.13.tar.gz,下載地址http://www.sqlite.org/download.html
[root@localhost pub]# tar -zxvf sqlite-amalgamation-3.6.13.tar.gz
[root@localhost pub]# mkdir /usr/local/sqlite
[root@localhost pub]# cd sqlite-amalgamation-3.6.13/
[root@localhost sqlite-amalgamation-3.6.13]# ./configure –prefix=/usr/local/sqlite
[root@localhost sqlite-amalgamation-3.6.13]# make;make install

6.編譯安裝httpd, 下載地址:http://httpd.apache.org
[root@localhost pub]#tar xvzf httpd-2.2.19.tar.gz //解壓apache2安裝包
[root@localhost pub]#cd httpd-2.2.19//進入解壓後的目錄
[root@localhost httpd-2.2.19]# mkdir /usr/local/apache2
[root@localhost httpd-2.2.19]# ./configure -prefix=/usr/local/apache2 –enable-dav –enable-so –enable-maintainer-mode –enable-rewrite –with-apr=/usr/local/apr/bin/apr-1-config –with-apr-util=/usr/local/apr-util/bin/apu-1-config
//配置apache安裝,後面的第一個參數是定制apache安裝到那個目錄,–enable-dav –enable-so是和subversion整合時需要的

[root@localhost httpd-2.2.4]# make;make install 完成安裝,如果沒有錯誤,真的太幸運了,哈哈。出現錯誤是很撓頭的!
[root@localhost pub]# cd /usr/local/apache2/
[root@localhost apache2]# bin/apachectl start 啟動web服務,並訪問,注意防火牆,如果能正確的訪問,說明沒有問題,ok了!
[root@localhost apache2]# bin/apachectl stop 可以停止,接著安裝其他的軟件包了。

7安裝subversion1.6.16

http://subversion.apache.org/download/#recommended-release

http://subversion.tigris.org/servlets/ProjectDocumentList?folderID=10339&expandFolder=10339&folderID=260 subversion-1.6.16.tar.gz和subversion-deps-1.6.16.tar.bz2下載地址
[root@localhost pub]# tar -zxvf subversion-1.6.16.gz
[root@localhost pub]# tar -jxvf subversion-deps-1.6.16.tar.bz2

./configure以前,需要yum -y install openssl-devel,否則會一直報錯,提示你configure的時候加上–with-openssl,即使你加上了也會報錯,因為需要一個 openssl.h(具體的名字忘了)的頭文件,如果你沒有安裝openssl-devel這個軟件包的話,這個.h文件系統中是沒有的。在解壓縮 subversion-devel-1.6.16.tar.gz後,會在解壓縮subversion-1.6.16.tar.gz產生的文件夾內生成 zlib文件,在configure時,要加上他的路徑,否則configure: error: –with-zlib requires an argument.也是報錯!

[root@localhost subversion-1.6.16]# ./configure -prefix=/usr/local/subversion1.6.16/ –with-apxs=/usr/local/apache2/bin/apxs –with-apr=/usr/local/apr –with-apr-util=/usr/local/apr-util –with-neon=/usr/local/neon –with-sqlite=/usr/local/sqlite –with-ssl –with-zlib=/var/ftp/pub/subversion-1.6.16/zlib -enable-maintainer-mode –without-berkeley-db

在make之前一定要執行下一步,否則就會報錯如下:
/usr/bin/ld: cannot find -lexpat
collect2: ld returned 1 exit status
make: *** [subversion/svn/svn] Error 1
我也是出現錯誤了,報錯了,然後百度,google一頓狂搜,愣是沒有搜到我要的答案,不過大體上知道是缺少一個庫文件,這個文件的名稱應該包含lib, 或expat,因為提示是沒有找到lexpat嘛,所以,我就一個軟件包一個軟件包的測試,才找到這個軟件包的,在安裝完這個軟件包之後,make才繼續 進行下去的!!!!需要安裝的軟件包主要是這兩個:expat-1.95.8-8.2.1.i386.rpm和expat-devel- 1.95.8-8.2.1.i386.rpm
[root@localhost Server]# rpm -ivh expat-1.95.8-8.3.el5_4.2.i386.rpm
warning: expat-1.95.8-8.3.el5_4.2.i386.rpm: Header V3 DSA signature: NOKEY, key ID 37017186
Preparing… ########################################### [100%]
1:expat-devel ########################################### [100%]
[root@localhost Server]# rpm -ivh expat-devel-1.95.8-8.3.el5_4.2.i386.rpm
warning: expat-devel-1.95.8-8.3.el5_4.2.i386.rpm: Header V3 DSA signature: NOKEY, key ID 37017186
Preparing… ########################################### [100%]
1:expat-devel ########################################### [100%]

[root@localhost subversion-1.6.16]#make
[root@localhost subversion-1.6.16]#make install

完成安裝。確定一下svn有沒有安裝成功
[root@localhost subversion-1.6.16]# /usr/local/subversion1.6.16/bin/svnserve –version
svnserve, version 1.6.16 (r1073529)
compiled Jul 13 2011, 21:35:15

Copyright (C) 2000-2009 CollabNet.
Subversion is open source software, see http://subversion.apache.org/
This product includes software developed by CollabNet (http://www.Collab.Net/).

The following repository back-end (FS) modules are available:

* fs_fs : Module for working with a plain file (FSFS) repository.

會看到相關版本信息!

啟動/usr/local/apache2/bin/apachectl start後,如果報錯,這個我也查找了N久,才解決報錯內容如下:
[root@localhost bin]# ./apachectl start
httpd: Syntax error on line 53 of /usr/local/apache2/conf/httpd.conf: Cannot load /usr/local/apache2/modules/mod_dav_svn.so into server:

/usr/local/subversion/lib/libsvn_subr-1.so.0: undefined symbol: apr_memcache_add_server
需要在/etc/ld.so.conf中添加一下內容,並執行ldconfig
[root@localhost ~]# cat /etc/ld.so.conf
include ld.so.conf.d/*.conf
/usr/local/apache2/modules/
/usr/local/subversion/bin/
/usr/local/berkeleydb/bin/
[root@localhost ~]#ldconfig
這樣在啟動apache服務的是否就沒有報錯了!

配置svn服務器:
(1). 創建一個用戶,如:svnroot;並設置密碼,使其可以登錄。也可不創建svnroot,直接使用root,但是注意權限問題。

(2). 以svnroot用戶登錄
[svnroot@localhost conf]$ mkdir /home/svnroot/repository
[svnroot@localhost conf]$ cd /usr/local/subversion/bin
[svnroot@localhost bin]$ ./svnadmin create /home/svnroot/repository 會在repository目錄下產生以下文件和目錄
conf db format hooks locks README.txt
[svnroot@localhost bin]$ /usr/local/apache2/bin/Linux/1727.html' target='_blank'>htpasswd –cm /home/svnroot/repository/passwd.conf usera” 來創建svn用戶,如果第一次執行這個命令,需要加上參數c來創建passwd.conf文件,參數m是指定使用md5方式加密用戶密碼。新建用戶要求輸入兩次密碼
[svnroot@localhost bin] $cd /home/svnroot/repository
[svnroot@localhost bin] $ls -ll
conf db format hooks locks passwd.conf README.txt
看看是不是多了些文件,如果是則說明Subversion安裝成功了
這條語句將把路徑/home/user/import下找到的文件導入到你創建的Subversion 倉庫中去,提交後的修訂版為1。
[svnroot@localhost bin] $./svn import 你想要導入的文件位置 file:///home/svnroot/repository –m “注釋” 如下例:
[svnroot@localhost bin] $./svn import /var/ftp/pub/ file:///home/svnroot/repository/ -m “this is a test”

不讓其他人有該目錄的權限
[svnroot@localhost bin] $ chmod 700 /home/svnroot/repository

(3).使用root用戶 修改Apache配置文件
[root@localhost ~]# cd /usr/local/apadche2/bin
[root@localhost ~]# 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
,並在下面添加

DAV svn
#SVNParentPath /home/svnroot/repository/ //svn父目錄
SVNPath /home/svnroot/repository/test //與svn中bin中svnadmin創建應一樣 否則會進不到目錄
#AuthzSVNAccessFile /home/svnroot/repository/authz.conf //權限配置文件
AuthType Basic //連接類型設置
AuthName “Subversion.zoneyump” //連接框提示
AuthUserFile /home/svnroot/repository/passwd.conf //用戶配置文件
Require valid-user //采用何種認證
AuthzSVNAccessFile /home/svnroot/repository/conf/authz //這句話必須加上,加上以後,authz裡的用戶權限才被限制住

其中authfile是通過”htpasswd來創建的那個密碼文件,也就是passwd.conf;
“Require valid-user”告訴apache在authfile中所有的用戶都可以訪問。如果沒有它,則只能第一個用戶可以訪問新建庫。
接下來,找到找到以下內容
User daemon
Group daemon
把上述內容改成:
User svnroot
Group svnroot
保存退出

具體的配置應該是這樣的:
#User daemon
#Group daemon
User svnroot
Group svnroot

LoadModule dav_svn_module modules/mod_dav_svn.so
LoadModule authz_svn_module modules/mod_authz_svn.so
<Location /repo>
DAV svn
SVNPath /home/svnroot/repository
AuthType Basic
AuthName “Subversion.yxg”
AuthUserFile /home/svnroot/repository/passwd.conf
Require valid-user
AuthzSVNAccessFile /home/svnroot/repository/conf/authz
</Location>

(4). 添加svn用戶
創建
[svnroot@localhost bin] $htpasswd -c /home/svnroot/repository/passwd.conf usera 這個用戶上面已經建立了。
會要求輸兩次密碼
[svnroot@localhost bin] $htpasswd -c /home/svnroot/repository/passwd.conf userb 在添加一個用戶
在/home/svnroot/repository/conf有以下文件,需要編輯authz文件。
authz passwd svnserve.conf

$cd /home/svnroot/repository/conf
$vi authz
添加如下
[groups] /*這個表示群組設置
Admin=usra,userb /*這個表示admin群組裡的成員 user1,user2
Develop=u1, u2 /*這個表示Develop群組裡的成員 u1,u2
[www:/] /*這表示,倉庫www的根目錄下的訪問權限
usera = rw /*www倉庫user1用戶具有讀和寫權限
userb = r /* www倉庫userl用戶具只有讀權限
@develop=rw /*這表示 群 develop的成員都具有讀寫權限
[/] /*這個表示在所有倉庫的根目錄下
* = r /*這個表示對所有的用戶都具有讀權限

注意:在編輯authz文件時,所有行都必須要頂頭寫,不能有縮行

(5). 重起Apache //apache啟動後,就可以訪問svn了
[root@localhost subversion-1.6.16]#/usr/local/apache2/bin/apachectl –k restart

(6). 啟動svn服務//這一步似乎沒有必要,需要以後驗證。
[root@localhost subversion-1.6.16]# /usr/local/subversion1.6.16/bin/svnserve -d -r /home/svnroot/repository

-d 表示以 daemon 方式(後台運行)運行
-r /svn/project 指定根目錄是/home/svnroot/repository
檢查服務器是否啟動正常:
#ps –ef|grep svnserve

在IE地址欄裡輸入:http://192.168.1.200/repo
Copyright © Linux教程網 All Rights Reserved