resin® Welcome to the home of Quercus
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:
Juixe has written a nice overview of Quercus, including an example
of PHP/Java integration using
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 has written an article about PHP use in Java servers, including quotes from IBM and Caucho's Scott Ferguson.
Sriram Natarajan and Marina Sum have written a tutorial for running Quercus in the Sun Java System Web Server.
Tim Hanson has an excellent tutorial for running Quercus inside Weblogic, showing how to use Java objects, EJBs, and installing MediaWiki
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.
Read-only repository access to the Quercus code is provided at
Copyright (c) 1998-2009 Caucho Technology, Inc. All rights reserved.
caucho® , resin® and quercus® are registered trademarks of Caucho Technology, Inc.