开发者社区 问答 正文

Resin支持PHP配置

resin在3.0.x后几个版本里加入了对php的支持。本来是一直不以为然的,感觉也就是做了个解释器么。在实际使用中能起什么作用。今天上官 网,本来是想看看有什么新版本。发现官方网站上竟用Resin/Quercus(Resin的php servlet),和apache/mod php的性能对比。各项指数都有几倍的相差,特别是对于drupal的测试,即使再加了ea的情况下,也只算个平手。虽然也有人质疑这个结果,但对我来说 只要只要resin的php支持还是不错的就行。

特别的,Resin的官方网似乎也开始使用drupal的一些部分,至少forum是用drupal的模块了。drupal在IT届被接纳的范围越 来越广了,虽然国内也只是圈内人才真正知道这个系统的强大。

目前这个网站的系统还在等待drupal.4.7.0进入稳定期,再加上最近公司机构调整,也实在没时间进行微调。好多外嵌模块都没有部署。就先这 么将就着用一段时间吧。毕竟文字是能流传最久的东西。

最近resin从3.0.17版本的时候利用quercus包开始支持PHP语言,quercus完全是用java写的一套PHP解析工具,用 它来做PHP解析不象传统的apache+php,apache是动态解析,就跟解析javascript一样,不会预先编译,也就是说在性能上会有点差 别,而基于Resin的PHP则就象JSP一样,会预先把PHP文件编译成.java文件,然后再执行,据说速度是apache的7倍,然而这个速度对我 们这些JAVA开发人员并不太重要,只要不和apache的php相差不太远就行,必竟可以直接在resin下就能轻松使用PHP,拿PHP和JSP混合 使用将非常方便,而且最新的resin3.0.21已经支持PHP5,真是不错,昨天用resin3.0.21配置了个phpbb论坛,觉得还不错,运行 速度也相当可观,只是第一次使用的时候速度会有点慢,因为要象JSP一样先编译,第二次后就比较快了!使用方法很简单:
在原PHP工程下建一个WEB-INF目录,在这个目录下建一个resin-web.xml文件,用来支持PHP: <web-app xmlns="http://caucho.com/ns/resin"> <servlet servlet-name="resin-php" servlet-class="com.caucho.quercus.servlet.QuercusServlet"/> <servlet-mapping url-pattern="*.php" servlet-name="resin-php"/> </web-app>
这样就可以了!省去了配置apache的麻烦!

展开
收起
huc_逆天 2020-05-28 09:16:27 834 分享 版权
阿里云 AI 助理回答

Resin 是一个高性能的 Java 应用服务器,它通过集成 Quercus 来支持 PHP。Quercus 是一个完全用 Java 编写的 PHP 5 引擎,这意味着它可以在 Java 虚拟机(JVM)上直接运行 PHP 代码,而不需要传统的 Apache + mod_php 组合。这种设计带来了一些潜在的优势:

  1. 统一平台:对于同时使用 Java 和 PHP 的项目,Resin 可以提供一个统一的部署和管理平台,简化了运维工作。开发者可以利用 Java 的生态系统来管理 PHP 应用,比如使用 Java 的监控工具、日志系统等。

  2. 性能提升:正如你提到的,Quercus 可以将 PHP 代码编译成 Java 字节码,这在理论上可以减少每次请求时的解析开销,尤其是在多次执行同一段代码时。虽然实际性能提升会根据应用的具体情况有所变化,但在某些场景下确实能显著提高效率。

  3. 内存管理和稳定性:Java VM 在内存管理和垃圾回收方面通常表现得更为成熟和稳定,这对于需要长时间运行且对稳定性要求高的应用来说是一个优势。

  4. 无缝集成:在 Resin 中同时运行 PHP 和 Java 应用或库变得非常简单,这为混合技术栈的项目提供了便利。例如,你可以轻松地在 PHP 应用中调用 Java 类,或者在 Java 应用中嵌入 PHP 脚本,实现功能上的互补。

  5. 扩展性和安全性:由于运行在 JVM 上,PHP 应用可以利用 Java 的安全模型和沙箱机制,增强应用的安全性。同时,Java 平台丰富的类库和框架也可以为 PHP 应用提供额外的功能扩展。

配置示例中提到的 resin-web.xml 文件是 Resin 配置的一部分,用于定义如何处理 PHP 请求。通过简单的配置就能让 Resin 支持 PHP 应用,确实减少了传统 PHP 部署中的复杂度,如不再需要单独配置和管理 Apache HTTP Server。

总之,Resin 集成了 Quercus 对 PHP 的支持,不仅简化了多语言项目的部署流程,还可能带来了性能上的优化,尤其适合那些希望在单一平台上统一管理 Java 和 PHP 应用的开发团队。不过,是否选择这一方案还需根据具体项目需求、团队技能以及对现有技术栈的评估来决定。

有帮助
无帮助
AI 助理回答生成答案可能存在不准确,仅供参考
0 条回答
写回答
取消 提交回答