对于那些不知道Quercus是什么的人来说,这个问题的绊脚石 - 它是用Java完成的PHP实现。
对于我目前正在处理的项目,我们通过cgi通过servlet提供php页面(我知道它很笨重,但它是支持遗留代码的要求)。我很高兴发现了Quercus项目,因为它似乎是将我们的项目转移到更纯粹的Java环境的有希望的途径。
我有几个关于栎属的问题:
答案 0 :(得分:7)
我用WordPress进行了测试,性能几乎是普通Apache / PHP下默认WordPress安装的两倍。哪个还不是那么好。
我们注意到虽然Quercus支持PHP中的curl命令,但它不支持所有curl选项。所以自动插件下载不起作用。这不是什么大不了的事,你可以随时下载插件并手动安装它们。但这是一个红旗,因为我们不知道还有什么可行。这也意味着Facebook的PHP库无法正常工作(最有可能)。
如果您进行了大量的数据库连接和调用,那么您应该会看到该区域的性能大幅提升,因为将使用数据库连接池。
如果您正在编写代码,我会说这是一个非常可行的选择。支持足够的PHP,如果您发现不起作用的东西,您可以使用支持的其他PHP命令,或者只使用Java命令。
答案 1 :(得分:4)
我做了一些评估Quercus的工作,它看起来很有前景,但是没有与我正在进行的项目合作,因为它是基于Symfony而且Syscfony的反射性质没有得到Quercus的良好处理。
我确实尝试过使用它的许多开源PHP项目,并发现它有一个相当完整的基于PHP5的API。
你应该能够使用Jetty。我能够让它与Tomcat合作。
您可以将其视为Java应用程序中JSP的替代品。它的工作方式与将PHP编译为Java代码的工作原理类似,就像将JSP编译为Java代码一样。
我认为使用Jetty的最大缺点是无法预编译PHP代码。
但是,即使您没有将PHP与Java混合,也有很多优点。如果你把两者混合在一起,你会有更多的优势。
答案 2 :(得分:3)
请参阅有关开发者如何设法使用Quercus to run PHP on the Google App Engine
的链接注意:GAE并未正式支持PHP,但使用Quercus,您可以立即运行。
答案 3 :(得分:2)
PHP性能仅在专业版的栎中才有效。因为专业版将PHP代码编译为java字节码。所以它会更快。
但是开源版仍然使用http://en.wikipedia.org/wiki/Resin_Server
中所述的PHP解释器在开放式版本中似乎没有性能提升。
答案 4 :(得分:0)
好吧,如果您检查Quercus页面底部的版权,您会看到它在06年之前更新,所以我不保证任何PHP 5.x支持。
但是为什么你甚至想要拥有这样的双重开销呢?你也可以从php运行java:)