บันทึกการติดตั้ง Apache2 + Tomcat5.5 + mod_jk
หลังจากที่เมื่อก่อน เคยติดตั้ง apache2 + tomcat5.5 + mod_jk เรียบร้อยแล้ว แต่พอมาวันนี้ กลับลืมวิธีการติดตั้งแฮะ ก็เลยต้องมาเขียนบันทึกความทรงจำไว้ซะหน่อย ไม่อยากค้นหาข้อมูลใหม่ทุกครั้งที่จะต้องติดตั้ง
หมายเหตุ บรรทัดที่ขึ้นต้นด้วย # หมายถึง คำสั่งที่เราต้องป้อนเข้าไปบนหน้าจอเทอร์มินอลนะครับ
ระบบและซอฟต์แวร์ที่ใช้
- Fedora Core 4 (Kernel 2.6.12)
- Apache Httpd 2.0.54
- Java 2 Standard Edition 1.5 (http://java.sun.com/j2se/1.5.0/download.jsp)
- Apache Tomcat 5.5.9 (http://jakarta.apache.org/tomcat)
- mod_jk-1.2.14 (http://jakarta.apache.org/tomcat/connectors-doc)
ขั้นตอนการติดตั้ง
1. ติดตั้ง Java 2 Standard Editon 1.5
เมื่อดาว์นโหลดมาแล้ว ก็ทำการ chmod เพื่อให้สามารถรันได้ครับ
#chmod +x jdk-1_5_0_04-linux-i586.rpm.bin
จากนั้นก็รันโปรแกรมเลยครับ ซึ่งมันจะทำการแตกไฟล์ออกมาเป็น jdk-1_5_0_04-linux-i586.rpm และติดตั้งให้โดยอัตโนมัติ
#./jdk-1_5_0_04-linux-i586.rpm.bin
เมื่อติดตั้งเสร็จแล้วพาธของ Java จะไปอยู่ที่ /usr/java/jdk1.5.0_04
ให้เราทำการแก้ไขไฟล์ /etc/profile แล้วใส่ข้อความข้างล่าง ไว้ที่บรรทัดล่างสุดของไฟล์เลยนะครับ
export JAVA_HOME=/usr/java/jdk1.5.0_04
export PATH=$PATH:$JAVA_HOME/bin
บันทึกไฟล์ /etc/profile จากนั้นลองใช้คำสั่งข้างล่าง เพื่อตรวจสอบความถูกต้อง
#source /etc/profile
ลองตรวจสอบตัวแปรดูครับ โดยใช้คำสั่ง echo
#echo $JAVA_HOME
/usr/java/jdk1.5.0_04
#java -version
java version "1.5.0_04"
Java(TM) 2 Runtime Environment, Standard Edition (build 1.5.0_04-b05)
Java HotSpot(TM) Server VM (build 1.5.0_04-b05, mixed mode)
2. ติดตั้ง Tomcat 5.5.9
#tar xvfz jakarta-tomcat-5.5.9.tar.gz
#mv jakarta-tomcat-5.5.9 /usr/local
#cd /usr/local
#ln -s jakarta-tomcat-5.5.9 tomcat55
3. ติดตั้ง JK Connector (mod_jk)
#tar xvfz jakarta-tomcat-connectors-1.2.14-src.tar.gz
#cd jakarta-tomcat-connectors-1.2.14-src
#cd jk/native
#./configure --with-apxs=/usr/sbin/apxs --enable-jni --enable-EAPI
สำหรับการคอนฟิก จะมีปัญหาเกิดขึ้นมาครับ ด้งนี้
need to check for Perl first, apxs depends on it...
checking for perl... /usr/bin/perl
configure: error: Invalid location for apxs: '/usr/sbin/apxs'
ซึ่งระบบจะแจ้งว่า เราไม่มี /usr/sbin/apxs เราจะต้องติดตั้งแพคเกจ httpd-devel ก่อนนะครับ สำหรับผม จะใช้วิธีติดตั้งจาก apt-get ก็แล้วกันครับ การติดตั้งแบบ apt-get install นี้ จะง่ายในขั้นตอนของการค้นหา Dependency (การขึ้นต่อกัน) ของซอฟต์แวร์
#apt-get install httpd-devel
apt-get install httpd-devel
Reading Package Lists... Done
Building Dependency Tree... Done
The following extra packages will be installed:
apr-devel (0.9.6-3.1)
apr-util-devel (0.9.6-2)
The following NEW packages will be installed:
apr-devel (0.9.6-3.1)
apr-util-devel (0.9.6-2)
httpd-devel (2.0.54-10.1)
0 upgraded, 3 newly installed, 0 removed and 0 not upgraded.
Need to get 927kB of archives.
After unpacking 6409kB of additional disk space will be used.
Do you want to continue? [Y/n]
จากนั้นก็ลองทำการคอนฟิก ./configure และใช้ออฟชันเหมือนข้างบน อีกรอบ ก็ผ่านครับ ต่อมาก็ทำการ make ได้เลย ดังนี้
#make
จากนั้นก็ทำการทำสำเนาไฟล์ mod_jk.so ไปไว้ในโมดูลไดเรคเทอรีของ apache ครับ
#cp apache-2.0/mod_jk.so /etc/httpd/modules/
4. สร้างไฟล์ workers.properties
#vi /etc/httpd/conf/workers.properties
workers.tomcat_home=/usr/local/tomcat55
workers.java_home=$JAVA_HOME
ps=/
worker.list=default
worker.default.port=8009
worker.default.host=localhost
worker.default.type=ajp13
worker.default.lbfactor=1
5. สร้างไฟล์ mod_jk.conf
#vi /etc/httpd/conf.d/mod_jk.conf
<IfModule !mod_jk.c>
LoadModule jk_module modules/mod_jk.so
</IfModule>
#
# Mod_jk settings
#
JkWorkersFile "conf/workers.properties"
JkLogFile "logs/mod_jk.log"
JkLogLevel error
JkMount /jsp-examples default
JkMount /jsp-examples/* default
# End of mod_jk settings
6. ทดสอบ
#cd /usr/local/tomcat55/bin
#./catalina.sh start
#/etc/init.d/httpd restart
ทดลองเปิดเว็บบราวเซอร์ แล้วเรียกไปที่ http://localhost:8080/jsp-examples
จากนั้นทดลองเรียกไปที่ http://localhost/jsp-examples ผลลัพธ์ที่ได้ต้องออกมาเหมือนกันทั้งสองหน้านะครับ
เพิ่มเติมครับ ในกรณีที่เราต้องการให้ผู้ใช้คนอื่นๆ สามารถใช้งาน jsp/servlet ในโฮมไดเรคเทอรีของตัวเองได้ เราต้องทำดังนี้ครับ
แก้ไขไฟล์ server.xml แล้วหาตรงแทก <Host> ครับ ซึ่งจะมีลักษณะแบบนี้
<Host name="localhost" appBase="webapps"
unpackWARs="true" autoDeploy="true"
xmlValidation="false" xmlNamespaceAware="false">
<!-- จะมีคอมเมนต์อีกเยอะแยะเลยล่ะ -->
</Host>
ให้เราทำการเพิ่มบรรทัดสีน้ำเงินเข้าไปดังนี้
<Host name="localhost" appBase="webapps"
unpackWARs="true" autoDeploy="true"
xmlValidation="false" xmlNamespaceAware="false">
<Listener className="org.apache.catalina.startup.UserConfig" directoryName="public_html"
userClass="org.apache.catalina.startup.PasswdUserDatabase"/>
<!-- จะมีคอมเมนต์อีกเยอะแยะเลยล่ะ -->
</Host>
แหล่งข้อมูล
http://duangbung.blogspot.com/2005/07/apache2-tomcat-5-modjk2-index-only.html