卖逼视频免费看片|狼人就干网中文字慕|成人av影院导航|人妻少妇精品无码专区二区妖婧|亚洲丝袜视频玖玖|一区二区免费中文|日本高清无码一区|国产91无码小说|国产黄片子视频91sese日韩|免费高清无码成人网站入口

svn nginx

服務器系統(tǒng)總體規(guī)劃:1、Apache 負責SVN 具體事務,端口802,SVN 相關業(yè)務由域名 svn.opensoce.com 承擔,來自svn.opensoce.com 的請求全部轉發(fā)至802端口

服務器系統(tǒng)總體規(guī)劃:

1、Apache 負責SVN 具體事務,端口802,SVN 相關業(yè)務由域名 svn.opensoce.com 承擔,來自svn.opensoce.com 的請求全部轉發(fā)至802端口交由802端口給Apache 處理

2、Nginx 做主體Web 服務,對外開放80端口,負責普通網站業(yè)務和svn 業(yè)務轉發(fā)

安裝部署過程:

一、支持包安裝及相關用戶、用戶組創(chuàng)建

tar zxf libiconv-1.13.tar.gz

cd libiconv-1.13

./configure --prefix=/usr/local

make

mak install

tar zxf zlib-1.2.3.tar.gz

cd zlib-1.2.3

./configure

make

make install

#最好不要讓root 用戶參與到svn 的權限管理和日常的運行和維護工作中來, 所以我們建立一個用戶(如svn)

同時為了處理好權限的問題,我們可以建立一個組(如www ),其他希望使用svn 的用戶加入這個組

在root 權限下用下面的命令創(chuàng)建用戶和組:

groupadd www

useradd svn -g www

useradd www -g www

二、Apache 安裝

Apache 官網: http://httpd.apache.org/

wget http://labs.renren.com/apache-mirror/httpd/httpd-2.2.16.tar.bz2 tar jxf httpd-2.2.16.tar.bz2

cd httpd-2.2.16.tar.bz2

./configure --enable-dav --enable-so --enable-ssl

--prefix=/usr/local/webserver/apache2 --enable-mods-shared=all make

make install

,

刪除httpd 的調試符號

cp httpd httpd.old

strip httpd

刪除調試符號

strip --strip-debug /tools/lib/*

strip --strip-unneeded /tools/{,s}bin/* #這個參數(shù)千萬不可應用于庫文件 rm -rf /tools/{info,man}

添加為服務

cp /usr/local/webserver/apache2/bin/apachectl /etc/init.d/apache2 chkconfig --add apache2

chkconfig --list apache2 apache #服務默認在運行級3,5啟動

三、Apache 配置

vi /usr/local/webserver/apache2/conf/httpd.conf

#修改用戶組

User svn

Group www

#修改端口為

Listen 802

四、Subversion 安裝

BDB:

Subversion: http://subversion.apache.org/source-code.html 目前版本

1.6.12

wget http://subversion.tigris.org/downloads/subversion-1.6.12.tar.bz2 wget

tar jxf subversion-deps-1.6.12.tar.bz2

cd subversion-1.6.12

./configure --with-apxs=/usr/local/webserver/apache2/bin/apxs --prefix=/usr/local/webserver/subversion

--with-apr=/usr/local/webserver/apache2

--with-apr-util=/usr/local/webserver/apache2 --with-ssl

--with-zlib=/usr/local/lib --without-berkeley-db

,

PYTHON=/usr/bin/python --with-swig=/usr/bin/swig --enable-shared --enable-static --enable-swig-binding=python

#python和swig 可能需提前安裝

在以上編譯過程中可能會出現(xiàn) configure: error: Subversion requires SQLite 解決方法:可以下載最新的Sqlite 版本sqlite-amalgamation-3.7.0.tar.gz wget http://www.sqlite.org/sqlite-amalgamation-3.7.0.tar.gz

tar zxvf sqlite-amalgamation-3.7.0.tar.gz

cd sqllit-3.7.0

cp sqlite3.c ../subversion-1.6.12/sqlite-amalgamation/sqlite3.c 經過上面的步驟mod_dav_svn.so and mod_authz_svn.so將會被copy 到/usr/local/webserver/apache2/modules/下;

同時在 /usr/local/webserver/apache2/conf/httpd.conf中會增加如下2行: LoadModule dav_svn_module modules/mod_dav_svn.so

LoadModule authz_svn_module modules/mod_authz_svn.so

檢查一下是否都正確,如果沒有的話可能就要手動加進去。

注意一下運行. /configure時加的這幾個參數(shù)PYTHON=/usr/bin/python –with-swig=/usr/bin/swig –enable-shared –enable-static

–enable-swig-binding=python,開始的時候編譯svn 的時候沒有加這幾個參數(shù),單獨使用svn 都沒問題,但是如果安裝trac 的話就會出錯,一般出現(xiàn)類似下面的錯誤:

--------------------------------------------------------------------- Python Traceback

Traceback (most recent call last):

File "/usr/local/lib/python2.5/site-packages/trac/web/main.py", line 387, in dispatch_request

dispatcher.dispatch(req)

File "/usr/local/lib/python2.5/site-packages/trac/web/main.py", line 191, in dispatch

chosen_handler = self._pre_process_request(req, chosen_handler) File "/usr/local/lib/python2.5/site-packages/trac/web/main.py", line 263, in _pre_process_request

chosen_handler = f.pre_process_request(req, chosen_handler) File

"/usr/local/lib/python2.5/site-packages/trac/versioncontrol/api.py", line 73, in pre_process_request

self.get_repository(req.authname) # triggers a sync if applicable

,

File

"/usr/local/lib/python2.5/site-packages/trac/versioncontrol/api.py", line 92, in get_repository

self.repository_type)TracError: Unsupported version control system "svn"

--------------------------------------------------------------------- 解決方法就是在make svn的時候要加上這幾個參數(shù)”PYTHON=/usr/bin/python –with-swig=/usr/bin/swig –enable-shared –enable-static

–enable-swig-binding=python”

同時執(zhí)行了上面的make && make install后還要編譯安裝Subversion SWIG Python bindings

Swig-py 的安裝說明在

subversion-1.6.12/subversion/bindings/swig/INSTALL文件里說的比較詳細,安裝過程如下:

cd subversion-1.6.12

make swig-py

make install-swig-py

那么你可以看到swig-py 的install 目錄是

/usr/local/webserver/subversion/lib/svn-python。用如下命令講這個擴展包擴展到python :

echo

/usr/local/webserver/subversion/lib/svn-python >/usr/lib/python2.3/site-packages/subversion.pth

剩下的就是測試svn 的swig-py 包是不是能work 了,很簡單。

python

>>>import svn.repos

如果不報錯,就完事大吉了。

如果報錯,那么檢查幾件事情:

I. subversion的configure 是不是enable 了shared 和static ,是不是帶–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 的下列動態(tài)庫 libsvn_swig_py-1.so.0 -> libsvn_swig_py-1.so.0.0.0

如果一切正常,這個安裝就完成了。

安裝完成后, 運行svnserver –version 確認版本為1.6.12。

SVN 服務器安裝結束.

五、Subversion 配置

切換到用戶svn 來創(chuàng)建svn 倉庫,對svn 進行配置

首選選擇一個目錄位置作為svn 倉庫的存放位置,例如某項目以

/var/svndata/myproject 作為存放位置。

創(chuàng)建項目版本庫”myproject”,默認指定倉庫的文件格式為fsfs : /usr/local/webserver/subversion/bin/svnadmin create

/var/svndata/myproject

修改目錄權限

chown -R svn:www /data0/htdocs/svn

chmod -R g w /var/svndata/myproject

chmod g s /var/svndata/myproject/db

接下來修改Apache 配置文件

vi /usr/local/webserver/apache2/conf/httpd.conf # 在文件末尾添加如下內容

# Location中的/svn只是個虛目錄,用于區(qū)別普通的網站訪問,

# 例如url 為 http://127.0.0.1/svn/myproject,則/svn的部分就會由下述配置去解析。

# 如果你想在url 中使用/svn11去解析,那么下面的Location 配置就變?yōu)?

Dav svn

SVNListParentPath on

#----允許在網頁上顯示svn 父目錄list --記住,注釋不要和配置項寫到同一行,否則會出錯..

SVNParentPath "/var/svndata"

#----/var/svndata 是SVN 的父目錄

AuthType Basic

#----連接類型設置

,

AuthName "Subversion Repository"

#----連接框提示

AuthUserFile /etc/svn/passwd

#----用戶配置文件

AuthzSVNAccessFile /etc/svn/authz

#----svn用戶配置文件

Require valid-user

這里設置SVNParentPath 而不是SVNPath 的好處是可以幾個repository 同時訪問

其中 /etc/svn/passwd 文件是通過htpasswd 命令來創(chuàng)建的,第一次設置用戶時使用-c 表示新建一個用戶文件 /etc/svn/authz文件內容如

[groups]

Admin = www

#admin組成員, 前面我們創(chuàng)建了www 組,并在該組下創(chuàng)建了用戶svn

[myproject:/]

#版本庫myproject 的權限,注意寫的形式

@Admin = rw

#admin組有讀寫的權限

svn = rw

#svn有讀寫的權限

[www:/]

#版本庫www 的權限

@Admin = rw

svnman = rw

[/]

#如果允許任意用戶瀏覽svnroot 的內容,則設置下面這句

*=r

#svn父目錄所有人都與讀的權限

修改訪問控制文件

/usr/local/webserver/apache2/bin/htpasswd -c /etc/svn/passwd svn

#這個文件名即為httpd.conf 中配置的文件名, 最后的svn 即為要添加的用戶名 New password: xxxxxx

Re-type new password: xxxxxx

Adding password for user svn

#完成后執(zhí)行 chmod a r /etc/svn/passwd, 以保障apache 能夠讀取該文件 #以后需添加用戶時執(zhí)行

/usr/local/webserver/apache2/bin/htpasswd -c /etc/svn/passwd newuser #反復執(zhí)行此程序,將自己需要添加的用戶(替換命令最后的用戶名) 添加進去!

,

重啟apache

/usr/local/webserver/apache2/bin/apachectl restart

打開瀏覽器訪問 http://svn_server_address/svn , 如果有東西顯示就說明成功。

接下來可以import 代碼文件了,可以在其他機子上完成:

svn import -m "Hello, my project" [path]

#說明:

#[path] 是導入的路徑,不寫就是當前路徑

#path目錄下, 需要建立三個目錄: trunk, tags, branches (類似CVS) 這不是必須的,但是這對今后的項目管理很有好處

#把最初的代碼放在trunk 目錄下!

#import之后用command "svn co http://svn_server_address/svn/myproject"就該可以check out剛才import 的代碼了

六、安裝配置Trac

安裝配置Trac

Trac

是一個非常優(yōu)秀的源代碼瀏覽工具,現(xiàn)在也很流行。在安裝前,需要注意的是,Trac 需要以下幾個軟件的支持,安裝前一定要先安裝好。

要預先安裝的軟件包在trac-0.10.4的INSTALL 文件里有列出,copy 如下: * Python, version >= 2.3.

Please keep in mind, that for RPM-based systems you will also need python-devel and python-xml packages.

* Subversion, version >= 1.0. (>= 1.1.x recommended)

* Subversion SWIG Python bindings (not PySVN).

* PySQLite, version 1.x (for SQLite 2.x) or version 2.x (for SQLite 3.x) * Clearsilver, version >= 0.9.3 (0.9.14 recommended)

* A web server capable of executing CGI/FastCGI scripts, or Apache HTTPD with

mod_python. (Trac also comes with a standalone server, but its use is not

recommended for use in a production environment.)

以上各包,一個也不能少,除非你不用apache 來做web (而使用tracd ,這是trac 本身都不建議使用的httpd ),當然我們用CGI 方式來運行python 腳本,所以省掉一個mod_python.

,

補充說明下,光有PySQLite 而沒有SQLite 顯然是不行的

這幾個軟件包可以在 http://www.rpmfind.net 和 http://www.rpmfind.com 上找到適合自己系統(tǒng)的版本,下載后直接安裝即可。當然你也可以通過下載源碼編譯安裝這些包。

然后開始安裝trac :

tar zxvf trac-0.10.4.tar.gz

cd trac-0.10.4

python ./setup.py install

關于trac 本身的安裝就這么簡單,詳情請參考trac-0.10.4/INSTALL文檔。其中還有后續(xù)章節(jié)所涉及內容的詳述,包括如何使用 trac-admin初始化一個trac 項目,如何啟動tracd 服務,以及如何配置使用apache 來提供trac 的web 服務。 trac 安裝的缺省路徑是/usr,trac-admin 和tracd 都在/usr/bin目錄,trac 的模版等都在/usr/share/trac目錄。

使用trac-admin 命令可以初始化一個trac 項目,一個trac 項目對應一個SVN repository ,這是應用中應該注意的。

#trac-admin /var/trac/myproject initenv

這個命令即可啟動初始化/var/trac/myproject項目的交互進程,是建立trac 項目,運行后提示如下:

Project Name [My Project]> 輸入項目名稱

Database connection string [sqlite:db/trac.db]> 因為前面使用的是sqlite 所以直接回車即可

Repository type [svn]>倉庫類型svn 回車

Path to repository [/path/to/repos]>倉庫路徑 輸入剛才的

/home/svn/myproject

Templates directory [/usr/share/trac/templates]> 模板路徑,還是回車

初始化完成后,可以通過修改/var/trac/myproject/conf/trac.ini來改變設置,甚至可以改變svn repository的設置,你需要做的只是在改完后使用

trac-admin /var/trac/myproject resync來重新同步trac 項目和svn repository 。

更細節(jié)的配置內容請參考trac 相關文檔。

順便修改一下權限

chown -R svn:www /var/svndata

trac 有兩種方式提供web 服務,其一是trac 自帶的tracd ,它本身就是一個httpd ,啟動方式如下:

,

tracd --port 8000 /var/trac/myproject

或者你有兩個項目,則在后面加一個目錄:

tracd --port 8000 /var/trac/myproject1 /var/trac/myproject2

這種方式很簡單,但問題是trac 本身都不建議你用,因為tracd 不夠完善. 但不管怎么樣,你可以試用一下tracd ,看看你的安裝配置是不是都可以work 了,畢竟加上apache ,是件相對復雜很多的事情,所以,在這之前用tracd 來檢驗一下還是必要的。

啟動服務后,你就可以在一臺客戶機上使用瀏覽器來來瀏覽你開啟的web 服務了。比如:

如果可以看到trac 的默認首頁,就說明是OK 的,然后就開始將trac 集成到apache.

把trac 集成的到apache 有很多方法, 可以使用mod_python模塊, 可以使用cgi 模塊或者fast-cgi 模塊

我這里使用了cgi 模式,這個方法比較簡單。如果你需要速度快一點, 那使用fast-cgi 好了.

首先把trac 源代碼目錄中cgi-bin 目下的兩個文件拷貝到你存放cgi 的地方, 比如/usr/local/webserver/apache2/cgi-bin目錄下。

然后修改apache 的配置文件httpd.conf

vi /usr/local/webserver/apache2/conf/httpd.conf

然后添加以下內容:

#

### Trac settings

#

Alias /trac/chrome/common "/usr/share/trac/htdocs"

Options Indexes MultiViews

AllowOverride None

Order allow,deny

Allow from all

ScriptAlias /trac /usr/local/webserver/apache2/cgi-bin/trac.cgi SetEnv TRAC_ENV_PARENT_DIR "/var/trac"

,

AuthType Basic

AuthName "Trac Login"

AuthUserFile /etc/svn/passwd

Require valid-user

密碼文件svntrac.htpasswd 我們和svn 共享, 這樣就只需要管理一套密碼了. 保存, 退出, 重啟apache. 再訪問

看看是不是可以得到trac 的默認首頁, 然后點擊”browse source”,你應該可以看到svn 倉庫里的資源.

這里需要注意的是:

SetEnv TRAC_ENV "/var/trac/myproject" #單個項目時用這樣寫 SetEnv TRAC_ENV_PARENT_DIR "/var/trac" #多個項目時這樣寫

還有如果多個項目使用一個密碼文件可以這樣配置”trac/*/login”,單個的話就”tra/login”

對于多個項目的話當在瀏覽器里輸入

時顯示的是一個簡單的Available Projects頁面,如果希望修改這個頁面,請編輯/usr/share/trac/templates/index.cs, 下面是我根據我們項目需要而更改的index.cs 文件

Available Projects Of XXX Team

Wiki Navigation

XXX Team's Projects

2.1.21 --- For ss project, release 2.1.21 ---- My example project

2.1.27 ---- My example project

2.2.0 code ---- My example project

Sol ---- Sol project

Real Case ---- Real project

XXX Team's Member

xxx

xxx

標簽: