[整合] apache22的mod_proxy_ajp模组试用及apache22+php5+tomcat5快速安装指南

[整合] apache22的mod_proxy_ajp模组试用及apache22+php5+tomcat5快速安装指南

apache22的mod_proxy_ajp模组试用及apache22+php5+tomcat5快速安装指南

12/13/2005
Note:整个安装是在5.3-RELEASE下完成的。但应该也适用于其他unix like平台。

一、准备工作:
1、先更新port,#cvsup -g -L 2 your-ports-supfile。
2、安装JDK1.5
推荐使用JDK1.5p2(native方式),介绍FreeBSD下 JDK编译的文章很多,本文不再赘述。安装完成JDK后,别忘了设置环境变量JAVA_HOME。之后验证JDK是否安装正确。执行java –version,看输出是否正确。

二、安装
1、安装tomcat
从port安装即可。
2、安装apache22
我的make参数如下:
make WITH_AUTH_MODULES=yes WITH_DAV_MODULES=yes WITH_LDAP_MODULES=yes WITH_MISC_MODULES=yes WIHT_PROXY_MODULES=yes WITH_SSL_MODULES=yes WITH_SUEXEC_MODULES=yes WITH_PROXY_MODULES="proxy proxy_http proxy_ajp proxy_balancer"
make install
make clean
安装完成后,lynx localhost测试一下。确保安装正确。
3、安装php5
cd /usr/ports/lang/php5
make install clean

安装其他需要的php扩展模组
cd /usr/ports/lang/php5-extension
make config
make
make install
make clean
编辑httpd.conf,增加如下行:
AddType application/x-httpd-php .php
AddType application/x-httpd-php-source .phps
4、配置mod_proxy_ajp
首先看一下httpd.conf中是否正确load了mod_proxy模组。如果没有的话,重新编译安装apache22。mod_proxy_ajp的配置非常简单。基于灵活性考虑,最好单独在虚拟主机中配置。我的配置如下:
<VirtualHost *>
ServerName localhost
ProxyPass / ajp://localhost:8009/
#ProxyPass / http://localhost:8180/
ProxyPassReverse / ajp://localhost:8009/
#ProxyPassReverse / http://localhost:8180/
</VirtualHost>
说明:/表示把所有发往80端口的http访问请求自动转向到tomcat监听的8080端口(FreeBSD port安装的tomcat默认监听8180端口)。lynx localhost,可以看到tomcat的welcome页。说明安装成功。
注意:由于/的设置把所有80端口的访问都forward到了tomcat,所以这可能不是我们所希望的,这种情况下apache只是个转发代理。一般情况下,我们希望apache同时能提供mod_perl、php功能。因此需要单独为jsp的应用配置URI映射。 配置同样很简单ProxyPass /myapp ajp://localhost:8009/,ProxyPassReverse /myapp ajp://localhost:8009/即可。
可以看到,比起前代的mod_jk来讲,mod_proxy_ajp非常简单方便。mod_jk的配置简直是一场噩梦。哈哈,还等什么,快升级吧。

斑竹加个精吧, 目前没看过有人贴过这个的~

看来, 其实mod_proxy_ajp就是增加了apache对ajp协议的通用url支持, 配置的可读性大大提高了
这是我看到的第一篇apache220的文章,谢谢

几个问题讨论一下
1. 编译apache的时候,用的是make加参数,我编译的时候是./configure --,有什么区别吗
2. ProxyPass / ajp://localhost:8009/
可以指向别的机器吗?如
ProxyPass / ajp://othermachine:8009/
3. 从文中看来,php5是支持apache220的,请问php4支持吗?

谢谢
1. configure脚本可以达到make的效果,我编译过
2. 肯定可以这样写,而且是实现同IP不同域名虚拟机的方法
3. 应该可以
要是再能详细点就经典了!!可以的话能不能把编译的参数都说明一下,为什么要这么编译.我这只菜鸟会非常感激的!

还有为什么要:



、先更新port,#cvsup -g -L 2 your-ports-supfile。


很菜 别笑我哦!



QUOTE:
原帖由 jhsea3do 于 2005-12-14 11:26 发表
1. configure脚本可以达到make的效果,我编译过
2. 肯定可以这样写,而且是实现同IP不同域名虚拟机的方法
3. 应该可以

感谢回复,但是如果实践后再说,会对大家更有帮助:)
1. 大家一直用的是./configure,我想问的是make的区别
2. 有没有哪位朋友试过?
3. 我试的结果是不行,所以才问的


QUOTE:
原帖由 bjchenxu 于 2005-12-15 14:32 发表


感谢回复,但是如果实践后再说,会对大家更有帮助:)
1. 大家一直用的是./configure,我想问的是make的区别
2. 有没有哪位朋友试过?
3. 我试的结果是不行,所以才问的

1. 执行configure脚本的目的包括了修改Makefile配置
2. 你自己可以试试,绝对可以
3. 我编译了 apache22+php441, 没有问题


QUOTE:
原帖由 lazy_bug 于 2005-12-15 10:03 发表
要是再能详细点就经典了!!可以的话能不能把编译的参数都说明一下,为什么要这么编译.我这只菜鸟会非常感激的!

还有为什么要:



、先更新port,#cvsup -g -L 2 your-ports-supfile。


很菜 别笑我哦!

port 的步骤可能是BSD上所需要的,我不用BSD所以也没有用port,直接tarball的
我想问一下关于mod_proxy_ajp。
现在您这种写法,只能是把某个目录交给tomcat解析么?不能按照文件类型来?如果这样的话,如果指定的目录里有htm文件也是有apache请求tomcat,然后由apache返回请求结果?
与其讨论什么不行,不如讨论什么才行。