14

对于遇到这个问题但不知道Quercus是什么的人来说 - 它是用 Java 完成的 PHP 实现。

对于我目前正在进行的一个项目,我们通过 cgi over servlet 提供 php 页面(我知道它很笨重,但它是支持遗留代码的必要条件)。我很高兴发现 Quercus 项目,因为它看起来像是将我们的项目转移到更纯 Java 环境的有希望的途径。

我有几个关于 Quercus 的问题:

  • 您在运输产品中使用过 Quercus 吗?
  • 支持多少 php API?
  • 你在使用它时遇到了什么问题?
  • 您是否能够使其与 Jetty 一起使用?你听说过它与 Jetty 一起工作吗?(我想不通)
4

5 回答 5

7

我已经使用 WordPress 对其进行了测试,其性能几乎是常规 Apache/PHP 下默认 WordPress 安装的两倍。这仍然不是那么好。

我们确实注意到虽然 Quercus 在 PHP 中支持 curl 命令,但它并不支持所有 curl 选项。所以自动插件下载不起作用。这没什么大不了的,您可以随时下载插件并手动安装它们。但这是一个危险信号,因为我们不知道还有什么办法。这也意味着 Facebook 的 PHP 库不能正常工作(很可能)。

如果您执行大量数据库连接和调用,您应该会看到该区域的性能大幅提升,因为将使用数据库连接池。

如果您正在编写代码,我会说这是一个非常可行的选择。支持的 PHP 已经足够多,如果您发现某些东西不起作用,您可以使用受支持的不同 PHP 命令,或者只使用 Java 命令。

于 2009-04-22T18:36:01.297 回答
4

我做了一些评估 Quercus 的工作,它看起来很有希望,但不适用于我正在从事的项目,因为它是基于 Symfony 的,并且 Quercus 没有很好地处理 Symfony 的反射性质。

我确实尝试让一些开源 PHP 项目使用它,并发现它有一个相当完整的基于 PHP5 的 API。

你应该能够让它与 Jetty 一起工作。我能够让它与Tomcat一起工作。

您真的可以将其视为 Java 应用程序中 JSP 的替代品。它的工作方式与 JSP 的工作方式相似,因为您将 PHP 编译为 Java 代码,就像您将 JSP 编译为 Java 代码一样。

我相信使用 Jetty 的最大缺点是无法预编译 PHP 代码。

但是,即使您没有将 PHP 与 Java 混合使用,也有很多优点。如果您将两者混合使用,您将拥有更多优势。

于 2009-04-22T18:23:38.317 回答
3

请参阅有关开发人员如何设法使用Quercus 在 Google App Engine 上运行 PHP 的链接

注意:GAE 中不正式支持 PHP,但使用 Quercus,您现在可以运行它。

于 2009-04-27T16:30:24.260 回答
2

PHP性能只有专业版的quercus才会好。因为专业版把PHP代码编译成java字节码。所以会更快。

但是开源版本仍然使用 PHP 解释器,如http://en.wikipedia.org/wiki/Resin_Server中所述

开源版本似乎没有性能提升。

于 2012-05-18T13:16:13.910 回答
0

好吧,如果您检查 Quercus 页面底部的版权,您会看到它更新到 06 年,所以我不保证任何 PHP 5.x 支持。

但是为什么你甚至想要这样的双重开销呢?您也可以从 php 运行 java :)

于 2009-04-22T14:48:22.297 回答