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: resin-4.0.6.zip)
  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:

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