在Freebsd6.2下架設Apache2.2+Subversion1.4.3+Trac0.10.4作爲版本控制缺陷跟蹤

首先安裝Freebsd系統,我安裝的是6.2。建議只安裝src,ports,binary,doc.其他ports裏面的package先不要 裝,升級一下ports之後再裝。因爲前不久ports裏面的xorg從6.9升級到7.2了。如果安裝了升級比較麻煩。所以先不安裝其他的 package。

升級ports之後開始安裝。

首先我們需要安裝 Apache 和 Subversion 軟件:

dev# cd /usr/ports/www/apache22
dev# make WITH_AUTH_MODULES=yes WITH_DAV_MODULES=yes \
WITH_SSL_MODULES=yes WITH_BERKELEYDB=db42 install clean
dev# cd /usr/ports/devel/subversion
dev# make -DWITH_SVNSERVE_WRAPPER -DWITH_MOD_DAV_SVN \
-DWITH_APACHE2_APR install clean

安裝完成後,我們來初始化倉庫目錄:

dev# mkdir -p /svn/repos
dev# svnadmin create /svn/repos
dev# chown -R www:www /svn/repos

這裏,使用 www:www 用戶/組是由於我們是通過 Apache 來提供訪問支持。設置 Apache 的配置文件 /usr/local/etc/apache22/httpd.conf,以下只顯示了主體部分:

.....
LoadModule usertrack_module libexec/apache22/mod_usertrack.so
LoadModule unique_id_module libexec/apache22/mod_unique_id.so
LoadModule setenvif_module libexec/apache22/mod_setenvif.so
LoadModule version_module libexec/apache22/mod_version.so
LoadModule ssl_module libexec/apache22/mod_ssl.so
LoadModule mime_module libexec/apache22/mod_mime.so
LoadModule dav_module libexec/apache22/mod_dav.so
LoadModule status_module libexec/apache22/mod_status.so
LoadModule autoindex_module libexec/apache22/mod_autoindex.so
LoadModule asis_module libexec/apache22/mod_asis.so
LoadModule info_module libexec/apache22/mod_info.so
.......
LoadModule alias_module libexec/apache22/mod_alias.so
LoadModule rewrite_module libexec/apache22/mod_rewrite.so
#LoadModule dav_module libexec/apache22/mod_dav.so
LoadModule dav_svn_module libexec/apache22/mod_dav_svn.so
LoadModule authz_svn_module libexec/apache22/mod_authz_svn.so


重啓apache的時候發現有一個dav_module的錯誤。後來發現是load了兩次。我就把後面的那個dav_module註釋掉了。注意註釋前面的那個會出錯的。
然後在/usr/local/etc/apache22/Includes 下編輯svn.conf
dev# vi /usr/local/etc/apache22/Includes/svn.conf
<Location /svn>
DAV svn
SVNPath /svn/repos
AuthType Basic
AuthName "Feloo Subversion Repository"
AuthUserFile /etc/svn-auth-file
Require valid-user
</Location>

使用 htpasswd 創建驗證用戶:

dev# htpasswd -cm /etc/svn-auth-file rory

最後,在 /etc/rc.conf 文件中設置:

apache22_enable="YES" 

啓動 Apache 後,可以通過 http://you.host.nameOrIP/svn 訪問你的 Subversion 倉庫了(這裏假設你的 Apache 監聽在 80 端口)。至於客戶端,在 Windows 下可以使用 TortoiseSVNn,相當不錯工具。以上步驟在 FreeBSD 6.1-RC 環境下試驗成功,你可以進行適當的設置,讓 Apache 支持 SSL,這樣,你的 svn 將更加安全。

接下來安裝trac

dev# cd /usr/ports/www/trac

dev# make install clean


這樣就安裝好了,簡單吧。接下來開始initevn
dev# mkdir -p /trac/projects/

dev# trac-admin /trac/projects initenv

dev# chown -R www:www /trac/projects/ (這一步很重要哦。如果沒有修改owner下面和Apache集成之後會

出現沒有權限的錯誤不能正常顯示)


操作中會提示一些信息,提示subversion 的 repository地址就是前面我們創建的repository /svn/repos 其他都不用設置這樣就建立好了,啓動standalone服務器tracd
dev# tracd --port 8000 /trac/projects

這樣就可以通過http://you.host.nameOrIP:8000 查看到安裝成功的trac了.這算是基本完成了。接下來就是使用apache來運行trac,需要mod_python 或者 mod_wsgi 的支持。這裏我選擇了mod_python,因爲在ports裏面有現成的。
dev# cd /usr/ports/www/mod_python3

dev# make install clean

這裏不能安裝/usr/ports/www/mod_python 因爲這裏需要mod_python 3.1.3+ /usr/ports/www/mod_python 的版本是 2.7.11。
安裝完成之後修改Apache的配置加載安裝好的mod_python.
dev# vi /usr/local/etc/apache22/httpd.conf 

LoadModule python_module libexec/apache22/mod_python.so

添加trac的Location配置
dev# vi /usr/local/etc/apache22/Includes/trac.conf 

<Location /trac>
SetHandler mod_python
PythonHandler trac.web.modpython_frontend
PythonOption TracEnv /trac/projects
PythonOption TracUriRoot /trac
</Location>
<Location /trac/login>
AuthType Basic
AuthName "Feloo Trac Projects"
AuthUserFile /etc/svn-auth-file
Require valid-user
</Location>

這裏使用的認證文件和svn的相同。一切都ok了,重啓Apache
dev# /usr/local/etc/rc.d/apache22 restart
查看http://you.host.nameOrIP/trac 一切正常,恭喜你安裝成功了。

參考


在 FreeBSD 下架設 Subversion 作爲版本控制系統

本文系 莫多泡泡(somebody) 原創,轉載請註明地址和作者。謝謝。
http://jdkcn.com/entry/howto-install-apache22-subversion143-trac10-on-freebsd6.html
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章