Caucho Resin : Reliable, Open
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
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