Caucho Resin : Reliable, Open

2012 年 12 月 12 日1,1210

Quercus is Caucho Technology's 100% Java implementation of PHP 5

released under the Open Source GPL license. Quercus comes with many

PHP modules and extensions like PDF, PDO, MySQL, and JSON. Quercus

allows for tight integration of Java services with PHP scripts, so

using PHP with JMS or Grails is a quick and painless endeavor.

With Quercus, PHP applications automatically take advantage of

Java application server features just as connection pooling and

clustered sessions.

Quercus implements PHP 5 and a growing list of PHP extensions including

APC, iconv, GD, gettext, JSON, MySQL, Oracle, PDF, and Postgres. Many

popular PHP application will run as well as, if not better, than the standard

PHP interpreter straight out of the box. The growing list of PHP software

certified running on Quercus includes DokuWiki, Drupal, Gallery2, Joomla,

Mambo, Mantis, MediaWiki, Phorum, phpBB, phpMyAdmin, PHP-Nuke, WordPress

and XOOPS.

Quercus presents a new mixed Java/PHP approach to web applications and

services where Java and PHP tightly integrate with each other. PHP applications

can choose to use Java libraries and technologies like JMS, EJB, SOA

frameworks, Hibernate, and Spring. This revolutionary capability is made

possible because 1) PHP code is interpreted/compiled into Java and 2) Quercus

and its libraries are written entirely in Java. This architecture allows PHP

applications and Java libraries to talk directly with one another at the

program level. To facilitate this new Java/PHP architecture, Quercus

provides and API and interface to expose Java libraries to PHP.

The Quercus .war file can be run on Java application servers such

as Glassfish, i.e. it can be run outside of Resin. This .war file includes

the Quercus interpreter and the PHP libraries.

If you are new to Quercus, please check out:

Getting Started Guide

Quercus documentation

Caucho wiki

Caucho forums

Bug Tracking

Links

Juixe TechKnow: Run PHP Web Applications on the Java Platform

Juixe has written a nice overview of Quercus, including an example

of PHP/Java integration using import.

Quercus drives 4x performance improvement for Drupal

So, to give you an idea of what kind of performance, Caucho's site claims 4x improvements over standard mod_php with many applications, including Drupal.

So, we decided to use some of the machines in our lab to try this out. Seems like a good idea, no?

And a drum roll please...

Well, I'll be damned if they weren't correct. Here are the results:

Infoq: PHP on Java: Best of Both Worlds?

Infoq has written an article about PHP use in Java servers, including

quotes from IBM and Caucho's Scott Ferguson.

Sun: Running Quercus inside Sun Java System Web Server

Sriram Natarajan and Marina Sum have written a tutorial for running

Quercus in the Sun Java System Web Server.

Oracle: Running Quercus inside Weblogic

Tim Hanson has an excellent tutorial for running Quercus inside Weblogic, showing how to use Java objects, EJBs, and installing MediaWiki

Use Java to Improve Drupal's Scalability

Geert Bevin recently experimented with clustering Drupal with Terracotta running on Caucho's Quercus, a Java implementation of PHP.

Javalobby

hosted an interesting followup discussion that discussed the merits of PHP on the Java platform using Quercus.

'Month of PHP bugs'

We're following the Month of

PHP Bugs and analyzing the bugs for quercus at the Caucho Forum.

Quercus is immune to many of the PHP bugs because Quercus is implemented in Java and PHP is implemented in C.

We're in the process of writing a brief description of

Quercus/PHP Security issues.

Customer Case Study

Production use of Resin and Quercus to deploy combined Java-PHP solution for Emergency Preparedness and Response for Healthcare. Check out the details of the Quercus-LiveProcess deployment.

Downloads

Version Binary Source Date

Quercus 4.0.25

.war

src

2012-02-02

Quercus 4.0.18

.war

src

2011-05-10

Quercus 4.0.11

.war

src

2010-09-29

Quercus 4.0.10

.war

src

2010-08-24

Quercus 4.0.9

.war

src

2010-07-29

Quercus 4.0.8

.war

src

2010-07-02

Quercus 4.0.7

.war

src

2010-05-21

Quercus 4.0.6

.war

src

2010-04-13

Quercus 4.0.5

.war

src

2010-03-17

Quercus 4.0.4

.war

src

2010-02-23

Quercus 4.0.3

.war

src

2010-01-11

Quercus 4.0.1

.war

src

2009-07-31

Quercus 3.2.1

.war

src

2008-10-10

Quercus 3.1.6

.war

src

2008-05-10

Quercus 3.1.5 (beta)

.war

src

2008-02-26

Quercus 3.1.2 (beta)

.war

src

2007-07-18

Quercus 4.0 snapshot (alpha)

.war

2009-04-18

Subversion access

Read-only repository access to the quercus code is provided at

svn://svn.caucho.com/resin/trunk/modules/quercus

0 0