快速业务通道

在WebSphere Application Server Community Edition上运行PHP

作者 佚名技术 来源 NET编程 浏览 发布时间 2012-05-22

简介:在 web 开发中 PHP 一直占据着一席之地,无论是小型规模的 web 应用,还是像 Yahoo 这样 的大型网站。PHP 和 Java 一直是以竞争对手的形式出现,如果我们能够同时使用 PHP 和 Java,那么这 种互相竞争的现状就可能改变。把 PHP 的灵活性和 Java 的强大功能结合起来,开发 web 应用可能不再 像今天这么复杂,而会变成一种享受。本文将介绍一种可以结合使用 PHP 和 Java 的方法,通过 PHP Integration Kit 让 IBM 的开源服务器 WebSphere Application Server Community Edition 支持 PHP 脚本。通过学习本文,读者可以掌握 PHP Integration Kit 的原理;文中的样例说明这种技术的可行性 。

背景和工作原理

PHP是一种在web应用开发中非常受欢迎的脚本语言。当我们使用PHP作 为服务器端脚本时(本文将不会讨论以命令行的方式运行PHP和使用PHP编写桌面应用程序),需要运行在 Apache HTTP服务器或者Microsoft IIS这样的web服务器上。虽然我们可以在Apache HTTP服务器上同时配 置PHP和JSP支持,但是需要将PHP和JSP请求分别转发到相应的PHP引擎或者Java应用服务器,在PHP脚本和 JSP代码之间没有建立关系,也不能在一个HTML页面中混合使用PHP脚本和JSP代码。通过PHP Integration Kit for WebSphere® Application Server (WAS),Community Edition (CE),我们可以将PHP脚本集 成到Java™ 2 Enterprise Edition (J2EE)应用中,例如通过Container Managed Security (CMS) 来控制对PHP脚本的访问权限,通过WAS CE的管理控制台来安装/更新PHP应用,还可以通过Java Filter技 术来修饰包含PHP脚本的HTML页面。您可以在IBM alphaWorks网站找到这个项目的最新信息,目前支持的 平台有Windows和Linux,不过现在这个项目还不能使用在产品环境中。

PHP Integration Kit通过 在Servlet容器中配置FastCGI filter,将PHP脚本请求转发到PHP引擎。PHP Integration Kit提供了一个 launcher来调用PHP引擎。需要指出的是PHP Integration Kit并没有重新构建一个PHP的引擎,而是需要 利用现有的PHP引擎(这个比较容易理解,因为PHP引擎是由PHP.net提供和维护的)。如果系统中安装有 多个版本的PHP引擎,可以在web部署描述文件web.xml中对PHP引擎进行配置。图1简单说明了PHP脚本在 WASCE中的生命周期。

图 1. PHP脚本在WASCE中的生命周期

在WebSphere Application Server Community Edition上运行PHP

部署: 为了让PHP Integration Kit能够运行PHP脚本,PHP应用需要通过一种特殊的方法来进 行打包和部署。下面将详细描述具体的步骤,简单来说,打包的方式需要遵从Java企业应用WAR模型的要 求。

将PHP脚本打包在WAR文件中

将包含FastCGI filter实现的jar文件打包到WEB-INF/lib目录

在web.xml文件中添加一些定义,让FastCGI filter来处理包含扩展名.php的URL请求

用户 发出请求: 用户的浏览器发送一个带.php后缀的请求到Servlet容器(WAS CE)

对请求进行过滤 : 所有以.php结尾的URL请求都被Servlet容器转到在web.xml中注册的FastCGI filter。其他的URL请求 (HTML文件,图片,javascript脚本等)由Servlet容器中按照平常的方式处理

调用PHP引擎: 收 到第一个PHP脚本请求以后,FastCGI filter会调用特定的PHP引擎(在web.xml文件中进行配置)。PHP引 擎实现了服务器端的FastCGI协议

FastCGI请求: 当PHP引擎运行起来以后,FastCGI filter把请 求通过FastCGI协议转发过去——在请求中包含了将要执行的PHP脚本的路径

执行脚本 : 由PHP引擎来执行特定的PHP脚本

收集结果: PHP脚本产出输出内容

FastCGI响应: PHP 引擎将响应写到FastCGI的输入流中

Filter响应: FastCGI filter通过FastCGI响应把响应写到 Servlet容器提供的输出流中

输出响应: Servlet容器把响应发送到用户的浏览器中

安装 PHP

凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!

分享到: 更多

Copyright ©1999-2011 厦门凌众科技有限公司 厦门优通互联科技开发有限公司 All rights reserved

地址(ADD):厦门软件园二期望海路63号701E(东南融通旁) 邮编(ZIP):361008

电话:0592-5908028 传真:0592-5908039 咨询信箱:web@lingzhong.cn 咨询OICQ:173723134

《中华人民共和国增值电信业务经营许可证》闽B2-20100024  ICP备案:闽ICP备05037997号