Ò»¡¢trac ¸ÅÄî
Trac ÊÇÓÃPythonдµÄÒ»¸ö»ùÓÚWebµÄʼþ¸ú×Ùϵͳ£¬ËüʹÓÃWiKi×÷ΪÎĵµµÄ¸ñʽ£¬Subversion×÷Ϊ°æ±¾¿ØÖÆÏµÍ³¡£¿É°ïÖú¿ª·¢ÈËÔ±½øÐÐÔ´Âë°æ
±¾¹ÜÀí¡¢Bug¸ú×ÙºÍÌÖÂÛ¡£Debian
Èç¹ûÄãµÄϵͳÊÇDebianÔòÓÃapt-get install tracÃüÁî°²×°¼´¿É£¬TracÒÀÀµµÄËùÓÐÈí¼þ°üϵͳ»á×Ô¶¯°²×°¡£°²×°Íê³Éºó£¬¾Í¿É½øÐÐÅäÖÃÁË¡£
Trac¿ÉÒÔÉèÖóÉStandalone·þÎñÆ÷£¬Ö»¹©±¾»úʹÓá£Ò²¿ÉÒÔÓëApacheµÈWeb·þÎñÆ÷¼¯³É£¬Èç¹ûÓëApache¼¯³É£¬Ôò¿ÉÅäÖóÉCGI¡¢FastCGI»ò
Mod_PythonµÈ·½Ê½ ¡£
±¾ÈËÎIJÉÓãº
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/down.php?id=24851&ResourceID=35&site=1
clearsilver:
http://www.clearsilver.net/downloads/
subversion:
http://liuyu.blog.51cto.com/183345/48326
mysql_python:
http://osdn.dl.sourceforge.net/sourceforge/MySQL-python/MySQL-python-1.2.2.tar.gz
mod_python:
http://apache.mirror.phpchina.com/httpd/modpython/mod_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]> //ÕâÀïΪ¿Õ,Ö±½Ó»Ø³µ,ÊÂÏÈÇëÈ·ÈÏÕâ¸ö·¾¶
Èç¹ûÒÔÉÏÅäÖö¼ÕýÈ·µÄ»°£¬Õâ²½ÊDz»»á±¨´íµÄ£¬ÄÇô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
skypeng ÓÚ 2010-04-09 15:40:03·¢±í:
°Ý¶Á¡«¡«¡«¡«
wst021 ÓÚ 2010-03-09 13:01:14·¢±í:
Â¥ÉÏÐÁ¿àÁË£¬Ö§³ÖÂ¥Ö÷´´×÷¡£
2088 ÓÚ 2009-12-13 18:51:51·¢±í:
×Ô¼ºµÄÌû×Ó ¶¥ÉÏ