apache+svn+trac安裝及配置1

apache+svn+trac安裝及配置

svn簡介:

Subversion 是新一代的版本控制工具,它是一個自由、開放源碼的版本控制系統。它是一個通用系統,可用來管理任何類型的文件,其中包括程序源碼。Subversion是近年來崛起的版本管理工具,被譽爲是cvs的接班人

trac簡介:

Trac是一個爲軟件開發項目須要而集成了Wiki和問題跟蹤管理系統的應用平臺,是一個開源軟件應用。Trac以簡單的方式創建了一個軟件項目管理的Web應用,以幫助開發人員更好地寫出高質量的軟件;Trac應用力求不影響現有團隊的開發過程。

軟件環境:

 操做系統: 
 
Suse10  sp2  x_86
 
軟件包:
 httpd-2.2.8.tar.bz2                         
 pysqlite-2.5.5.tar.gz                         
subversion-1.4.6.tar.gz
subversion-deps-1.4.6.tar.gz
Trac-0.11.2.1.tar.gz
Genshi-0.5.1.tar.gz
swig-2.0.0.tar.gz
python-devel-2.4.2-18.13.i586.rpm
python-xml-2.4.2-18.13.i586.rpm
sqlite-3.2.8-15.2.i586.rpm
sqlite-devel-3.2.8-15.2.i586.rpm
 
注意:在搭建此環境時,要特別注意各類軟件對應版本,可能一個軟件的版本不對,都會致使環境搭建的失敗.

編譯安裝Apache

# tar zxvf httpd-2.2.8.tar.gz
# cd httpd-2.2.8
# ./configure --enable-dav --enable-so --enable-ssl --enable-maintainer-mode       --prefix=/usr/local/apache2 --enable-mods-shared=all --enable-rewrite
# make
# make install
#cp support/apachectl  /etc/init.d/httpd
# vi /etc/init.d/httpd
 
加入一下的代碼,apache能夠用chkconfig方式啓動:
 
# Startup script for the Apache Web Server
# chkconfig: - 85 15
# description: Apache is a World Wide Web server. It
  is used to serve
# HTML files and CGI.
# processname: httpd       
# pidfile: /usr/local/apache2/log/httpd.pid
# config: /usr/local/apache2/conf/httpd.conf
 
#chmod 755 /etc/init.d/httpd
#chkconfig --add httpd
#chkconfig --level 3 httpd on
#service httpd start
 
打開瀏覽器 http://IP/ ,若是出現Apache的測試頁面,能夠看到It works!說明apache已經能夠正常工做了.

編譯安裝Subversion:

注意:在安裝以前先確認你的OS上已經安裝了pythonswig,若是沒有安裝的話能夠下載source coderpm包來安裝,由於個人OS上只裝了python,因此下面還要裝下swig.
 
# tar zxvf swig-2.0.0.tar.gz
# cd swig-2.0.0
# ./configure
# make && make install
 
# tar zxvf subversion-1.4.6.tar.gz
# cd subversion-1.4.6
#./configure --with-apxs=/usr/local/apache2/bin/apxs --prefix=/usr/local/subversion --with-apr=/usr/local/apache2 --with-apr-util=/usr/local/apache2 --with-ssl --with-zlib --enable-maintainer-mode --without-berkeley-db PYTHON=/usr/bin/python --with-swig=/usr/local/bin/swig --enable-shared --enable-static --enable-swig-binding=python
# make
# make install
 
通過上面的步驟mod_dav_svn.so and mod_authz_svn.so將會被copy/usr/local/apache2/modules/,
同時在 /usr/local/apache2/conf/httpd.conf,添加以下2
LoadModule dav_svn_module     modules/mod_dav_svn.so
LoadModule authz_svn_module   modules/mod_authz_svn.so

檢查一下是否都正確,若是沒有的話可能就要手動加進去
同時執行了上面的make && make install後還要編譯安裝Subversion SWIG Python bindings

#cd subversion-1.4.6
#make swig-py
#make install-swig-py
 
能夠看到swig-pyinstall目錄是/usr/local/subversion/lib/svn-python.用以下命令講這個擴展包擴展到python
 
# echo  /usr/local/subversion/lib/svn-python >/usr/lib/python2.3/site-packages/subversion.pth
剩下的就是測試svnswig-py包是否是正常
 
#python <-- 啓動python
>>>import svn.repos             // ctrl+d退出
 
若是不報錯,那就說明OK.
若是報錯,那麼檢查以下問題:
 
I. subversion configure是否是enablesharedstatic,是否是帶--with-swig
II. libsvn_swig_py-x.so 是否存在於/usr/local/subversion/lib目錄;
III. /usr/local/subversion/lib 是否已經增長到ld.so.conf文件 (/etc/ld.so.conf)
IV. 請使用ldconfig -v |grep swig來檢查是否有swig的下列動態庫
libsvn_swig_py-1.so.0 -> libsvn_swig_py-1.so.0.0.0
 
若是一切正常,這個安裝就完成了
安裝完成後,運行svnserver --version確認版本爲1.4.6

配置svn

最好不要讓root用戶參與到svn的權限管理和平常的運行和維護工做中來,因此咱們創建一個用戶(svn)同時爲了處理好權限的問題,咱們能夠創建一個組(如svnrw),其餘但願使用svn的用戶加入這個組
 
root權限下用下面的命令建立用戶和組:

#groupadd svnrw
#useradd svn -g svnrw
#passwd svn


而後切換到用戶svn來建立svn倉庫,對svn進行配置

選擇一個目錄位置做爲svn倉庫的存放位置,在這裏用/home/svn做爲存放位置
// 建立版本庫"my_project",默認指定倉庫的文件格式爲fsfs

svnadmin create /home/svn/my_project
chown -R svn:svnrw /home/svn
chmod -R g+w home/svn/my_project
chmod g+s home/svn/my_project/db
# vi /usr/local/apache2/conf/httpd.conf

### svn settings
#
<Location /svn>
    DAV svn
    SVNListParentPath on          //
容許在網頁上顯示svn父目錄list
    SVNParentPath /home/svn       // /home/svn
是我這邊的SVN的父目錄
    AuthType Basic                // 
鏈接類型設置
    AuthName "Subversion Repository"        //
鏈接框提示
    AuthUserFile /etc/svntrac.htpasswd      //
用戶配置文件
    <LimitExcept GET PROPFIND OPTIONS REPORT>
        Require valid-user
    </LimitExcept>
</Location>
 
這裏設置SVNParentPath而不是SVNPath的好處是能夠幾個svn倉庫同時訪問
加了LimitExcept這樣匿名用戶能夠瀏覽,check out代碼,可是不能commit, 認證用戶有commit權限,其中svntrac.htpasswd文件是經過htpasswd命令來建立的,第一次設置用戶時使用-c表示新建一個用戶文件
 
# /usr/local/apache2/bin/htpasswd -c /etc/svntrac.htpasswd   admin
New password: xxxxxx
Re-type new password: xxxxxx
Adding password for user admin 
 
另外要修改 apache進程的權限:由於全部跟版本庫傳輸的操做都是經過apache進程進行的,因此即便你給svn用戶設置了很大的權限,可是apache進程沒 有訪問版本庫或者相關文件的權限也沒有用,apache進程的權限設置在 /usr/local/apache2/conf/httpd.conf 文件中配置,找到文件中的這兩行:

User daemon    // daemon用戶改成svn,讓apache進程以svn身份運行
Group daemon   //
daemon組改成svnrw
 
# service httpd restart
 
打開瀏覽器訪問 http://localhost/svn , 若是有東西顯示就說明成功

測試SVN是否能夠正常使用

svn倉庫文件夾裏,進入conf目錄,這裏須要修改3個配置文件.
 
#  vi  svnserve.conf
 
anon-access = read       //取消這行前面的#
anon-access = neno       //添加這行
auth-access = write     //取消這行前面的#
password-db = passwd    //取消這行前面的#
authz-db = authz        //取消這行前面的#
 
# vi  authz
 
[groups]
admin = admin                 // =號前面是組名,後面是用戶名,用戶名之間用逗號隔開
 
[my_project:/]               // :號前面是svn庫的名字
@admin = rw                  //  admin組設置讀寫權限
 
# vi passwd
 
[users]
admin = admin                    // =號前面是用戶,後面是用戶的密碼
 
啓動svn服務
 
# svnserve  -d --listen-port 6000 --listen-host 10.10.1.3  -r /home/svn/
// -d表示在後臺運行  --listen-port是監控的端口  --listen-hostsvn服務器的IP地址  -rsvn倉庫的路徑.
 
在一臺windows服務器安裝svn客戶端,我這裏使用的是TortoiseSVN,
鼠標右擊選擇SVN,出現一個對話框,上面的url
 svn://10.10.1.3:6000/my_project,下面任意選擇一 個當前磁盤
路徑,而後點擊肯定,若是沒有問題,就不報任何的錯誤,咱們還能夠
在檢出的文件夾建立一個文件,而後進行提交,看有沒有問題,要是沒
有問題,就說明svn配置是正常的.
相關文章
相關標籤/搜索