在Apache中整合JSP和PHP
二、配置Apache
在整个处理过程中的第一步是非常重要的,同时也是最复杂的。也就是需要安装Apache服务器,然后对Apache进行配置,以支持Apache Tomcat。对于安装来说,我们可以在google或baidu上搜索相关文章,这个本文不太详细讲述。但如何去配置它呢,首先我们需要使用一个Apache Tomcat connector,我们可以选择mod_jk或mod_jk2。在这里我强烈推荐使用mod_jk,因为mod_jk早在三年前就被放弃了。我们首先打开Apache的配置文件httpd.conf,将看到如下的内容:
#
# Use name-based virtual hosting.
#
#NameVirtualHost *:80
#
# VirtualHost example:
# Almost any Apache directive may go into a VirtualHost container.
# The first VirtualHost section is used for requests without a known
# server name.
#
在下面的部分,将建立一个VirtualHost节点,它将捕捉所有的在80端口的HTTP请求,
并将它们按着上述的方法进行映射(Tomcat是默认的,Apache只处理PHP和CGI请求)。
<VirtualHost *:80>
# Set DocumentRoot equal to Tomcat ROOT context
DocumentRoot /www/webapps/ROOT
# Exclude PHP & CGI (let Apache handle)
SetEnvIf Request_URI \.php no-jk
SetEnvIf Request_URI \.cgi no-jk
# 通过mod_jk,处理每一个请求(除了PHP和CGI)
# 将处理从Apache传给Tomcat
JkMount /* myWorker
</VirtualHost>
在上面的描述中,我们应该很容易将其变能第一种方法,也就是只向JkMount处理jsp或servlet请求到Tomcat上
三、发布应用程序
一查我们对环境进行了正确的配置,我们就可以将应用程序打包并发布到Web服务器了。将应用程序发布到Apache上和发布到Tomcat上没什么不同,都需要建立一个WEB-INF/web.xml文件,所不同的是如果请求的是PHP或CGI程序,将绕过Tomcat直接传给Apache来处理。
尽管改变Apache的根目录(默认是'dtdocs')对于发布应用程序并不方便。但我们可以将Apache的根目录指向Tomcat的发布目录。这样PHP/CGI就可以和JSP打在同一个WAR/EAR包中。我们只要简单地目录中放置JSP、HTML和PHP页即可完成发布。这对于开发,还是测试都是非常方便的。
另外,将PHP、JSP和CGI发布到同一个目录中还可以使它们共享相同的支持文件(CSS、JS、images等)的内容。还有,这个模型提供了一个Web应用程序的完整结构,以及从Java Web目录中调用PHP/CGI程序变得更简单(相对而言)。
四、总结
无论你在工作中是否被要求集成遗留的Web应用程序到新的Web程序中,或是将某个开源系统加进定制的Web应用中,或简单地将两个不同的Web应用集成到一起,你都有可能将不同的技术集成到同一个Web应用中。总之一句话,将不同的技术转换到同一种技术平台上是最好的解决方案。


















文章评论
共有 位CH网友发表了评论 查看完整内容