2010年2月15日月曜日

Redmine install

ref -> http://rtsp.us/2008/12/10/install-redmine-with-mod_passenger

How to install svn server on Ubuntu

ref -> http://www.ubuntuclub.com/node/1513

2010年2月10日水曜日

Trac

เอามาจาก web -> http://www.thaiopensource.org/howto/ติดตั้ง-trac-เอามาบริหารโครงการซอฟต์แวร์กัน

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 TRAC_ADMIN

สร้าง 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

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



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

## trac ##
#set up Trac handling
SetHandler mod_python
PythonHandler trac.web.modpython_frontend
PythonOption TracEnvParentDir /var/lib/trac/
PythonOption TracUriRoot /projects



AuthType Basic
AuthName "Trac"
AuthUserFile /var/lib/trac/.htpasswd
Require valid-user


## svn ##

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


## 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



เพิ่ม 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 เพิ่มเติมได้จาก easy_install

easy_install -U setuptools

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

2010年2月3日水曜日

Lighttpd install perl

ref -> http://www.cyberciti.biz/tips/howto-lighttpd-configure-perl-mysql-chrooted-jail.html

Lighttpd install perl, mysql support in chrooted jail

by Vivek Gite · 0 comments
Lighttpd logo

Perl is Practical Extraction and Report Language, which is quite famous and used by many web application. A Perl5 database interface to the MySQL database is provided by libdbd perl mysql shared library.
A note to readers

Following article is about running lighttpd perl in secure chrooted jail.

If you just need to run perl cgi-bin program out of box, please follow this previous article.

You can install perl support via mod_fastcgi or mod_cgi. Following are essential steps to run perl based application in chrooted lighttpd setup along with MySQL

This article is part of securing and running Lighttpd in chrooted jail.
Step #1: Enable mod_cgi

# lighty-enable-mod cgiOutput:

Available modules: auth cgi cml fastcgi proxy simple-vhost ssi ssl trigger-b4-dl userdir
Already enabled modules:
Enabling cgi: ok
Run /etc/init.d/lighttpd force-reload to enable changes

Now modify the file /etc/lighttpd/conf-enabled/10-cgi.conf file as per our chrooted jail setup:
# cp /etc/lighttpd/conf-enabled/10-cgi.conf /root/
# vi /etc/lighttpd/conf-enabled/10-cgi.conf
Modify the file as follows:
server.modules += ( "mod_cgi" )
alias.url += ( "/cgi-bin/" => "/home/lighttpd/cgi-bin/" )
cgi.assign = (
".pl" => "/usr/bin/perl",
)

Save and close the file.
Step #2: Prepare the file system for perl

# mkdir /webroot/usr/share -p
# mkdir /webroot/usr/lib -p
# mkdir /webroot/home/lighttpd/cgi-bin/ -p
# chown www-data:www-data /webroot/home/lighttpd/cgi-bin/
Step #3: Put Perl in the jail

Copy /usr/bin/perl to /webroot/usr/bin directory:# cp /usr/bin/perl /webroot/usr/bin

Install shared object/libraries used by perl:# /bin/l2chroot /usr/bin/perl

Now copy all perl files and modules stored in /usr directory:
# cp -avr /usr/share/perl /webroot/usr/share
# cp -avr /usr/share/perl5 /webroot/usr/share
# cp -avr /usr/lib/perl /webroot/usr/lib
# cp -avr /usr/lib/perl5 /webroot/usr/lib
Step #4: Put Perl MySQL DBD shared libraries in the jail

Copy shared libraries needed to load perl mysql.so (which is stored at /webroot/usr/lib/perl5/auto/DBD/mysql/mysql.so). Type the following command:
# /bin/l2chroot /usr/lib/perl5/auto/DBD/mysql/mysql.so

Please note that you have just enabled perl mysql support. However /usr/lib/perl5/ directory contains other shared object used by perl. You need to enable them to use rest of Perl features.
Step #5: Restart the lighttpd

# /etc/init.d/lighttpd restart
Test your perl+mysql setup

Copy following files to your /webroot/home/lighttpd/cgi-bin/ directory.

* db.pl: Test MySQL database connectivity (perl script), make sure you modify this file for correct MySQL server hostname, username and password.
* index.pl: simple perl program

Open a web browser and run http://yourdomain.com/cgi-bin/db.pl and http://yourdomain.com/cgi-bin/index.pl