Getting started with Quercus in Google App Engine

Last year an article was written on a blog about how to run PHP on Google App Engine (GAE).

The guide came with a pre-made package to get you started.

However, Quercus has been updated since this was produced.

Unfortunately the official Quercus website has very little detail to help us get started…

Further research lead me to a blog post by the company that makes Quercus entitled: Quercus on the Google App Engine

It gives a general overview of what is required, but isn’t really very direct.

I did also find an entry on their wiki for Quercus on Google App Engine, which was more useful.

Here’s what you need to do:

  1. Follow the Google App Engine: Creating a Project getting started guide to create your file structure and the xml files.
  2. Download the latest version of Resin (ie:
  3. From the zip, copy lib/resin.jar to your WEB-INF/lib
  4. Add GoogleQuercusServlet as a standard servlet and any params to web.xml (example web.xml)
  5. Put your PHP files in your “war” directory.
  6. Use the AppEngine Java SDK appcfg to update.

If you get this error:

java.lang.IllegalStateException: Found a jar file too large to upload: “…\WEB-INF\lib\resin.jar”. Consider using –enable_jar_splitting.

Using the suggested option fixed this, which looks like this:

C:\appengine-java-sdk\bin\appcfg.cmd –enable_jar_splitting update war

That’s pretty much it to get you started, when you visit your app address, you should be able to call your PHP files.

If you are looking for something a bit more advanced, take a look at these articles that explain how to get WordPress working:

  • Converting Wordpress for Quercus on Google App Engine
  • Using Quercus® to Run the WordPress PHP blog on Google App Engine (pdf)

For additional help I recommend you visit Caucho’s Quercus Forums.

Using Quercus® to Run the WordPress PHP blog on Google App EngineUsing Quercus® to Run the WordPress PHP blog on Google App Engine

Related posts:

  1. 10 wordpress performance optimisation tips I wanted to prepare my wordpress powered blog for an...
  2. Using Your Own URL as Your OpenID with WordPress Today I decided to join, which requires you to...
  3. The Google Translate recursion bug Recently I found a bug in Google Translate. It’s not...
  4. Cannot redeclare pclziputilpathreduction() I had this issue today, I found that you need...
  5. Does registering a domain for a longer term increase your search engine rankings? Recently I come across a claim by Network Solutions stating:...


  1. hm2k said,

    April 15, 2010 @ 7:49 pm

    I did discover a bug with WWW-Authenticate.


  2. Lim Chee Kin said,

    May 6, 2010 @ 2:48 pm


    Thanks for your kindness of sharing and helpful blog post.

    I follow all steps listed by you, but couldn’t make it works.

    Please find the complete project zip file here:

    FYI, I am using App Engine Java SDK (latest version)

    Did I missed any important step? Please advice.

    Thank you.

  3. hm2k said,

    May 25, 2010 @ 11:01 am

    They fixed my bug :)

    Steps to upgrade are simple…

    #Download latest quercus
    wget -O /tmp/
    #Extract files from archive
    unzip /tmp/ -d /tmp/quercus
    #Remove existing resin.jar
    rm -f war/WEB-INF/lib/resin.jar
    #Copy latest resin.jar
    cp -f /tmp/quercus/WEB-INF/lib/resin.jar war/WEB-INF/lib/resin.jar
    rm -fr /tmp/quercus
    rm -f /tmp/
    echo "done!"

RSS feed for comments on this post · TrackBack URL

Leave a Comment