歡迎您光臨本站 註冊首頁

搭建apache+svn+trac平台

←手機掃碼閱讀     火星人 @ 2014-03-25 , reply:0

一、trac 概念
Trac 是用Python寫的一個基於Web的事件跟蹤系統,它使用WiKi作為文檔的格式,Subversion作為版本控制系統。可幫助開發人員進行源碼版
本管理、Bug跟蹤和討論。Debian
如果你的系統是Debian則用apt-get install trac命令安裝即可,Trac依賴的所有軟體包系統會自動安裝。安裝完成後,就可進行配置了。
Trac可以設置成Standalone伺服器,只供本機使用。也可以與Apache等Web伺服器集成,如果與Apache集成,則可配置成CGI、FastCGI或
Mod_Python等方式 。
本人文採用:
redhat 9
apache 2 (mod_python)
mysql 5 (mysql_python)
Subversion 1.4
trac 0.10.4

二、trac 官網安裝方法

http://trac.edgewall.org/wiki/TracInstall
它所依賴的包:
*Python, version >= 2.3 //Please keep in mind, that for RPM-based systems you will also need python-devel and python-
xml packages.
*ClearSilver, version >= 0.9.3 //With python-bindings (./configure --with-python=/usr/bin/python)
*A web server capable of executing CGI/FastCGI scripts, or Apache HTTPD with mod_python.
* Subversion, version >= 1.0. (>= 1.1.x recommended)
* Subversion SWIG Python bindings (not PySVN).
*必須的資料庫支持(SQLite,PostgreSQL,MySQL(0.10.4以上版本的trac完全支持).
在安裝之前要先確認這些包是否滿足trac 的要求。
我的就是RH9 版本太低了,結果依賴的包超多。
所有包整理如下:
python:
http://download.chinaunix.net/do ... esourceID=35&site=1
clearsilver:
http://www.clearsilver.net/downloads/
subversion:
http://liuyu.blog.51cto.com/183345/48326
mysql_python:
http://osdn.dl.sourceforge.net/s ... python-1.2.2.tar.gz
mod_python:
http://apache.mirror.phpchina.co ... od_python-3.3.1.tgz
三、各個包的安裝方法:
1、python:
# tar xjvf Python-2.5.tar.gx
# cd Python-2.5
# ./configure --with-apxs=/usr/local/apache/sbin/apxs
# make;make install
2、clearsilver:
如果報此錯就說明clearsilver沒有安裝好 TracError: ClearSilver not installed (No module named neo_cgi)
# tar xfz clearsilver-0.10.5.tar.gz
# cd clearsilver-0.10.5
# ./configure --disable-apache --disable-csharp --disable-ruby --prefix=/usr --with-python=/usr/local/bin/python
#sed -i "s@/usr/local/bin/python@/usr/bin/env
[email=python@g]python@g[/email]
" scripts/document.py
#make || return 1
#make install
#cd python
#PYTHON_SITE=`/usr/local/bin/python -c \
"import sys; print [path for path in sys.path if path.find('site-packages') != -1][0]"`
# python setup.py install

3、mysql_python:
# tar xfz MySQL-python-1.2.1.tar.gz
# cd MySQL-python-1.2.1
# python setup.py build
# python setup.py install
在安裝mysql_python之前一定要裝好mysql_client
如果提示無法找到mysql_config
vi site.cfg
#mysql_config = /usr/local/bin/mysql_config
去掉註釋,改為你mysql_config 所在的路徑
4、mod_python:
# tar zxvf mod_python-3.3.1.tar.gz
# cd mod_python-3.3.1
# ./configure --with-apxs=/usr/local/apache/sbin/apxs
# make
# make install
在apache配置文件里加入模塊
vi /usr/local/apache2/conf/httpd.conf
LoadModule python_module modules/mod_python.so

四、創建資料庫:
# cd /usr/local/mysql
# mysqladmin create dbname
# mysql -uroot -p
> passwd
> grant all privileges on dbname.* to
[email=dbuser@dbhost]dbuser@dbhost[/email]
identified by 'dbpass';
> use dbname;
> ALTER DATABASE DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci;
> quit
以本機為例:
# mysqladmin create trac
# mysql -uroot -p
> root(mysql-root 密碼)
> grant all privileges on trac.* to
[email=trac@localhost]trac@localhost[/email]
identified by 'trac';
> use trac;
> ALTER DATABASE DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci;
> quit
註:一定要記住這裡創建的資料庫名(trac),用戶名(trac),密碼(trac),主機名(localhost)
因為之後創建trac表的時候需要用到
五、trac的安裝及初始化
# tar zxvf trac-0.10.4.tar.gz
# cd trac-0.10.4
# python ./setup.py install
如此處報錯請檢查以上安裝是否有誤。
trac初始化:
# trac-admin /usr/local/trac initenv (/usr/loca/trac 目錄會自動創建)
Project Name [My Project]> test
Database connection string [sqlite:db/trac.db]> mysql://trac:trac@localhost/trac //前面創建資料庫所用的到信息
Repository type [svn]> //這裡為空,直接回車
Path to repository [/path/to/repos]> /usr/local/apache2/svnroot/test //SVN倉庫地址
Templates directory [/usr/local/share/trac/templates]> //這裡為空,直接回車,事先請確認這個路徑
如果以上配置都正確的話,這步是不會報錯的,那麼trac 就已經正常安裝了。
剩下的只是apache的配置了。

六、配置 trac虛擬主機並啟動
# vi /usr/local/apache2/conf/httpd.conf
在未尾加入 :

SetHandler mod_python
PythonHandler trac.web.modpython_frontend
PythonOption TracEnv /usr/local/trac //trac 安裝目錄
SetEnv PYTHON_EGG_CACHE /tmp
PythonOption TracUriRoot /trac
AuthType Basic
AuthName "test's trac"
AuthUserFile /usr/local/apache2/svnroot/test/passwd //SVN用戶密碼目錄
Require valid-user

重啟apache # service httpd restart

http://ip/trac
就可以看到trac界面啦。。

七、總結
其實trac安裝並不難,我昨天配置nagios花了一天,並添加了N多插件,今天配了一天的trac其中遇到了N多錯誤,由於太多了,我也沒有
截下圖了,所以對錯誤就不一列舉了。其實所有的錯誤在官文FAQ里都可以找到,並解決。沒有什麼太難的,多細心,相信你也能配置成功。
明天繼續研究trac的其它功能,只用一個太浪費了。並安裝bugzilla與trac的BUG跟蹤做比較。

trac的一些修改及錯誤:
trac-email
修改trac.ini
[notification]
always_notify_owner = true
always_notify_reporter = yes
always_notify_updater = true
mime_encoding = quoted-printable
smtp_always_bcc =
smtp_always_cc = @example.com
smtp_default_domain =
smtp_enabled = true
smtp_from = @example.com
smtp_password =
smtp_port = 25
smtp_replyto =
smtp_server =
smtp_user =
use_public_cc = false
use_short_addr = false
use_tls = false

添加附件的時候報錯
Python Traceback
Traceback (most recent call last):
File "/usr/local/lib/python2.5/site-packages/trac/web/main.py", line 406, in dispatch_request
dispatcher.dispatch(req)
File "/usr/local/lib/python2.5/site-packages/trac/web/main.py", line 237, in dispatch
resp = chosen_handler.process_request(req)
File "/usr/local/lib/python2.5/site-packages/trac/attachment.py", line 361, in process_request
self._do_save(req, attachment)
File "/usr/local/lib/python2.5/site-packages/trac/attachment.py", line 496, in _do_save
attachment.insert(filename, upload.file, size)
File "/usr/local/lib/python2.5/site-packages/trac/attachment.py", line 180, in insert
os.makedirs(self.path)
File "/usr/local/lib/python2.5/os.py", line 165, in makedirs
makedirs(head, mode)
File "/usr/local/lib/python2.5/os.py", line 172, in makedirs
mkdir(name, mode)
OSError: [Errno 13] Permission denied: '/usr/local/trac/attachments/ticket'

解決辦法:attachments 目錄許可權不對。
chmod -R 755 /usr/local/trac/attachments
chown -R XXX.XXXX /usr/local/trac/attachments
修改下拉框---這個下拉框是new ticket 的時候cc 直接可以下拉用戶名 而不用手動輸入
修改trac.ini
[ticket]
restrict_owner = false改為:true


補:如果報錯:TracError: Unsupported version control system "svn". Check that the Python bindings for "svn" are correctly installed.
那就是httpd.conf 里少添加了: SetEnv PYTHON_EGG_CACHE /tmp

[火星人 ] 搭建apache+svn+trac平台已經有1050次圍觀

http://coctec.com/docs/linux/show-post-159648.html