Trac เป็นโปรแกรมบริหารโครงการซอฟต์แวร์บนเว็บเหมือนๆ กับ gForce, SourceForge, RedMind แต่แตกต่างตรงที่ Trac ตัวเล็กกระทัดรัดสามารถใช้งาน Ticket, Search, Browse โค้ดจาก SCM ต่างๆ ได้ และยังใช้ Workflow ได้อีกด้วย Trac กำหนดเนื้อหาให้เป็นแบบ Wiki ทำให้คุณสามารถสร้างหน้าเนื้อหาต่างๆ ที่คุณต้องการได้อย่างไม่จำกัด การติดตั้ง Trac มีวิธีการหลายวิธีแต่วิธีที่จะนำมาเป็น How-To ในครั้งนี้คือการใช้ Trac ร่วมกับ Apache และ SVN ครับ เครื่อง server ที่ผมใช้ติดตั้ง Ubuntu Server 9.04 Jaunty Jackalop มี IP Address เป็น 192.168.1.111 ชื่อเครื่องคือ trac.example.com มาเริ่มกันเลย

แปลงร่างเป็น root ก่อนครับ

sudo -s

ติดตั้งโปรแกรมที่เราต้องใช้กัน

apt-get install apache2 libapache2-mod-python2.4 libapache2-svn python-setuptools subversion python-subversion

หาจุดติดตั้งเหมาะๆ ให้กับ Trac ผมติดตั้งที่ /var/lib/trac ครับ สร้าง directory ขึ้นมาเลยครับ

mkdir /var/lib/trac
chown www-data:www-data /var/lib/trac

หาจุดติดตั้งเหมาะๆ ให้กับ svn ผมติดตั้งที่ /var/lib/svn สร้าง directory ขึ้นมาเลยครับ

mkdir /var/lib/svn

สร้าง repository ให้กับโครงการ sample เราครับ

mkdir /var/lib/svn/sample
svnadmin create /var/lib/svn/sample

จากนั้นสร้าง project ตัวอย่างมาสักอันเอาชื่อ sample ละกันครับ

trac-admin /var/lib/trac/sample initenv

trac-admin /var/lib/trac/sample permission add admin TRACADMIN

สร้าง password ไฟล์ให้กับ trac

htpasswd -c /var/lib/trac/.htpasswd admin

สร้าง authz สำหรับ svn

nano /etc/trac/.authz

ใส่ข้อมูลลงไปดังนี้

[/]
* =rw

จากนั้น chown ให้ apache อ่านและเขียนไฟล์ของ repo และ trac ได้

chown -R www-data /var/lib/svn/sample
chown -R www-data /var/lib/trac

สร้างไฟล์ virtual host สำหรับ trac

nano /etc/apache2/sites-available/trac

ใส่ข้อมูลดังนี้ครับ

<VirtualHost *>

ServerName trac.example.com
ServerAdmin webmaster@localhost    
DocumentRoot /var/www/

## trac ##
<Location /projects> #set up Trac handling
     SetHandler mod
python
     PythonHandler trac.web.modpythonfrontend
     PythonOption TracEnvParentDir /var/lib/trac/
     PythonOption TracUriRoot /projects
</Location>

<LocationMatch "/projects/[[:alnum:]]+/login">
    AuthType Basic
    AuthName "Trac"
    AuthUserFile /var/lib/trac/.htpasswd
    Require valid-user
</LocationMatch>

## svn ##
<Location /svn>
    DAV svn
    AuthType Basic
    AuthName "Subversion Repository"
    AuthUserFile /var/lib/trac/.htpasswd
    AuthzSVNAccessFile /var/lib/trac/.authz
    SVNParentPath /home/svn
    Require valid-user
</Location>

## SSL Self-Sign by using command
## openssl req -new -x509 -days 365 -nodes -out /etc/apache2/ssl/apache.pem -keyout /etc/apache2/ssl/apache.pem
#SSLEngine on
#SSLCertificateFile /etc/apache2/ssl/apache.pem

</VirtualHost>

เพิ่ม trac ลงใน site-enable

a2ensite trac

reload คอนฟิกของ apache

/etc/init.d/apache2 reload

จากนั้นก็เปิดเบราเซอร์ เบราวส์ไปที่ repo ของโครงการ sample เพื่อทดสอบ

http://trac.example.com/svn/sample

จะเห็นว่าเป็น Revision 0 : /

เบราวส์ไปที่ trac ของโครงการ sample จะเห็นหน้า trac ของโครงการ

http://trac.example.com/projects/sample

 

ติดตั้ง plugin เพิ่มเติมได้จาก easyinstall

easy_install -U setuptools

สำหรับ plug-in ที่น่าใช้งานมีหลายตัวดัวยกัน ผมแนะนำ plugin ที่ผมชอบก็แล้วกันครับ ตัวแรกเป็น TracAccountManager เพราะจะช่วยให้เราจัดการผู้ใช้ได้ง่ายมากขึ้น TracSpamFilter ป้องกันการโพสของ SPAM ส่วน plug-in อื่นๆ ก็ลองหามาสดสอบกันได้ครับ

Comments are closed.