CentOS6.3下apache與svn整合安裝

########安裝apr#########
#tar zxvf apr-1.3.6.tar.gz
#cd apr-1.3.6
#./configure--prefix=/usr/local/apr
#make&&makeinstall
#cd..  
 
########安裝apr-util########
#tar zxvf apr-util-1.3.8.tar.gz
#cd apr-util-1.3.8
#./configure--with-apr=/usr/local/apr
#make&&makeinstall
#cd..
 
########若是已經安裝過apache,則須要從新編譯安裝apache########
tarzxvf httpd-2.2.9.tar.gz
cd httpd-2.2.9
# ./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已經配置成功了。
       
########安裝subversion,時間稍微有點長,請耐心等候########
#tar zxvf subversion-1.6.3.tar.gz
#tar zxvf subversion-deps-1.6.3.tar.gz
#cd subversion-1.6.3
#./configure--prefix=/usr/local/subversion--with-apxs=/usr/local/apache2/bin/apxs--with-apr=/usr/local/apr/bin/apr-1-config--with-apr-util=/usr/local/apr/bin/apu-1-config
#make&&makeinstall
#cd..
 
在make的時候,.configure以後,進行make,出現以下問題
 # /usr/bin/ld: cannotfind-lexpat
 #collect2: ld returned 1exitstatus
 #make: *** [subversion/svn/svn] Error 1
 
  應該是缺乏-lexpat庫文件。
  解決方法:
 

#  yum install expat expat-devel php

手動配置svn:
1.添加svnroot用戶以及svn用戶組,創建svn版本庫目錄 web

#user add svnroot;            /*添加svnroot用戶*/ 
#group add svn ;              /*添加svn用戶組*/ 
#usermod-a -G svn svnroot;  /*將svnroot用戶添加到svn用戶組*/
 
#mkdir /home/svnroot
#mkdir /data
#chown-R root:svn/home/svnroot/data 
#chmod-R g+rws/home/svnroot/data   /*給svn組賦予讀寫權限,能夠根據須要更改相應權限*/
#chmod-R o-rwx/home/svnroot/data   /*刪除其餘無關人員的讀、寫、執行權限,默認狀況下可能其餘人有讀權限*/
 
#mkdir-pv/home/svnroot/data
#chown-R daemon /home/svnroot/data /*由於apache在線程用戶沒有權限訪問svn的倉庫,二者分別屬於不一樣的用戶者
本例apache屬於daemon擁有者,而svn倉庫屬於svn擁有者*/

#chmod-R 755/home/svnroot/data apache

2.創建svn版本庫
#/usr/local/subversion/bin/svnadmin create --fs-type fsfs /home/svnroot/data/project1 瀏覽器

3.創建訪問控制文件
#/usr/local/apache2/bin/htpasswd -c /home/svnroot/data/passwd wanghaihan #第一次加用戶名須要帶上-c,而後輸入兩次密碼 svn

#/usr/local/apache2/bin/htpasswd /home/svnroot/data/passwd test1 工具

4.創建本地項目控制文件
#cd /home/svnroot/data
#vi authz
[groups]
admin=wanghaihan,test1
[project1:/]
@admin = rw ui

#cat /usr/local/apache2/conf/httpd.conf | grep svn .net

顯示
LoadModule dav_svn_module modules/mod_dav_svn.so
LoadModule authz_svn_module modules/mod_authz_svn.so
就代表安裝成功。 線程

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

在# If your host doesn't have a registered DNS name, enter its IP address here.
#
#ServerName www.example.com:80 後面加入

ServerName localhost:80

在最後添加

<Location/svn>
    DAV svn
    SVNParentPath/home/svnroot/data
    AuthType Basic
    AuthName"Subversion"
    AuthUserFile/home/svnroot/data/passwd
    AuthzSVNAccessFile/home/svnroot/data/authz
    Require valid-user

</Location>

5.重啓apache
#/usr/local/apache2/bin/apachectl restart

訪問你的svn項目(能夠用客戶端工具checkout,或者瀏覽器訪問):

http://localhost/svn/project1

或者http://127.0.0.1/svn/project1

注意:在你上傳文件的時候可能會有以下權限不足的提示
Permission denied
svn: Commit failed (details follow):
svn: Can’t create directory ‘/home/svnroot/data/project1/db/txn-current-lock’: Permission denied

或者:
命令: 提交
錯誤: 提交失敗(細節以下):
錯誤: Can’t open file ‘/home/svnroot/data/project1/db/txn-current-lock’: Permission denied
完成!:
這是由於apache在線程用戶沒有權限訪問svn的倉庫,二者分別屬於不一樣的用戶者
本例apache屬於daemon擁有者,而svn倉庫屬於svn擁有者
解決方法: 
#chown -R daemon /home/svnroot/data 
#chmod -R 755 /home/svnroot/data

重啓下apache: #/usr/local/apache2/bin/apachectl restart

相關文章
相關標籤/搜索