作者:辛亚平
日期:2006年04月12日
零、前言与鸣谢
本文记录了整合 GNU/Linux、Apache 2.2.0、PHP 5.1.2、JDK1.5.0、Tomcat 5.5.16、jk2 2.0.4 的详细过程。JK2 的部分是解决的重点,其余部分都很顺利,唯独 JK2 的编译颇费周折,但是我只记下正确的做法,略去中间摸索的过程。对于 Apache2 与 PHP5 的安装,网上的教程很多,但本文提供的编译参数是经过优化的。
注:关于如何用 jk2 2.0.4 整合 Apache 2.2.0 与 Tomcat 5.5.16,本文参考了以下 3 篇文章:
关于Apache的性能优化 文章出处:DanceFire的专栏
APACHE整合TOMCAT 文章出处:http://www.cublog.cn/opera/?blogid=306
谈谈我对apache+tomcat+jk2整合的理解 文章出处:DouZhe.com
特此感谢以上 3 篇文章的作者!
一、软件环境
Arch Linux 0.7.1,Kernel26-2.6.16-ARCH
JDK 1.5.0_06
PHP 5.1.2
Apache 2.2.0
Tomcat 5.5.16
JK2 2.0.4
二、安装 Apache 2.2.0
从源码编译:
[xinsoft@Jessie]$ ./buildconf
[xinsoft@Jessie]$ ./configure \
--with-mpm=worker \
--enable-cache \
--enable-disk-cache \
--enable-mem-cache \
--enable-file-cache \
--enable-nonportable-atomics \
--enable-mods-shared=most
[xinsoft@Jessie]$ make install clean

安装的位置:/usr/local/apache2
三、安装 PHP 5.1.2
准备工作:
[xinsoft@Jessie]$ pacman -S gd
[xinsoft@Jessie]$ pacman -S gdm
[xinsoft@Jessie]$ cp /usr/include/gd.h /usr/lib/gd.h
注:pacman 是 arch Linux 所带的软件包管理工具。arch Linux 是针对 i686 优化了的 Linux 发行版本,而 pacman 是我最喜欢的软件包管理工具,正是基于这两个原因,我选择了 arch Linux 作为我的开发环境和测试服务器环境。

从源码编译:
[xinsoft@Jessie php-5.1.2]$ ./configure \
--prefix=/usr/local/php/v5.1.2/ \
--with-apxs2=/usr/local/apache2/bin/apxs \
--with-xslt \
--with-freetype=/usr/include/freetype2 \
--with-zlib-dir=/usr/include \
--with-ttf --with-jpeg-dir=/usr/lib \
--with-gdbm=/usr/lib \
--with-gd=/usr/lib/
[xinsoft@Jessie php-5.1.2]$ make install clean
安装的位置:/usr/local/php/v5.1.2

四、整合 Apache2 与 PHP5
上面编译 PHP5 结束后,/usr/local/apache2/modules/libphp5.so 就已经存在了。
[xinsoft@Jessie]$ vi /usr/local/apache2/conf/httpd.conf
LoadModule php5_module modules/libphp5.so
AddType application/x-httpd-php .php
写个程序来检验一下:
[xinsoft@Jessie]$ touch /usr/local/apache2/htdocs/php.php

运行:http://192.168.20.48/php.php

五、安装 JDK 1.5.0_06 与 Tomcat 5.5.16
JDK 安装的位置:/usr/local/javasoft/java/jdk/v1.5.0_06/
Tomcat 安装的位置:/usr/local/apache.org/tomcat/v5.5.16/
/etc/profile 中相应地增加的内容:
# ADD by Xinsoft, 2006-04-11 19:53:00
# jdk::begin for jdk 1.5.0_06
export JAVA_HOME=/usr/local/javasoft/java/jdk/v1.5.0_06
export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
export PATH=$JAVA_HOME/bin:$PATH
# jdk::end
# ADD by Xinsoft, 2006-04-12 22:23:04
# tomcat::begin for apache-tomcat-5.5.16
export CATALINA_HOME=/usr/local/apache.org/tomcat/v5.5.16
# tomcat::end

六、编译 JK2 2.0.4
[xinsoft@Jessie apache2]$ cd /usr/local/apache.org/jk2/jk2-2.0.4-src
[xinsoft@Jessie jk2-2.0.4-src]$ cd jk/native2/
[xinsoft@Jessie jk2-2.0.4-src]$ ./configure --with-apxs2=/usr/local/apache2/bin/apxs
[xinsoft@Jessie jk2-2.0.4-src]$ make
[xinsoft@Jessie jk2-2.0.4-src]$ cd ../build/jk2/apache2
[xinsoft@Jessie apache2]$ /usr/local/apache2/bin/apxs -n jk2 -i mod_jk2.so
[xinsoft@Jessie apache2]$ cd /usr/local/apache2/conf
[xinsoft@Jessie conf]$ vi httpd.conf
LoadModule jk2_module modules/mod_jk2.so
七、写 JK2 的配置文件
JK2所用的配置文件有2个:
jk2.properties 位置:/usr/local/apache.org/tomcat/v5.5.16/conf
作用:可能是定义tomcat与apache的通讯端口等
workers2.properties 位置:/usr/local/apache2/conf
作用:告诉apache有哪些目录是tomcat支持的
[xinsoft@Jessie conf]$ cd /usr/local/apache.org/tomcat/v5.5.16/conf
[xinsoft@Jessie conf]$ touch jk2.properties
[xinsoft@Jessie conf]$ vi server.xml
不要修改这个文件。直接退出。
[xinsoft@Jessie conf]$ cd /usr/local/apache2/conf
[xinsoft@Jessie conf]$ touch workers2.properties
[xinsoft@Jessie conf]$ vi workers2.properties
# Define the communication channel
[channel.socket:localhost:8009]
info=Ajp13 forwarding over socket
tomcatId=localhost:8009
# Map the Tomcat examples webapp to the Web server uri space
[uri:/jsp-examples/*]
info=Map the tomcat webapp of /jsp-examples/
[uri:/servlets-examples/*]
info=Map the tomcat webapp of /servlets-examples/
# Define the log file location and file size
[shm]
file=/usr/local/apache2/logs/shm.file
size=1048576
八、检验我们的劳动成果
[xinsoft@Jessie conf]$ /usr/local/apache2/bin/apachectl -k restart


你可以使用这个链接引用该篇文章 http://publishblog.blogchina.com/blog/tb.b?diaryID=5366484