Ever since Google App Engine (GAE) supported Java, it has opened a slew of other languages that GAE indirectly and unofficially supports. PHP is one of them through Quercus, our 100% Java clean-room implementation of the PHP language.
PHP is unique among the other languages in that there are plenty of high-quality, killer applications (i.e. Wordpress, Mediawiki, and Drupal) that are free and readily available for it. Furthermore, there has been incessant calls for Google to support PHP from the very beginnings of GAE.
Unfortunately, GAE doesn’t support MySQL, or any other relational database for that matter. We’re limited to Google Datastore, which is pretty much a big hash table. So running existing PHP applications unmodified on GAE is currently out of the question because they are so dependent on the LAMP architecture.
But how hard is it to modify an existing PHP application to run on GAE? I set to gain insight on this interesting question by getting Wordpress running on GAE. Since Wordpress already runs on Resin with Quercus, all I needed to do was convert the MySQL queries to instead use the App Engine’s subset of JPA. In the end, it took about a week of uneventful work to get enough of Wordpress running so we could demo it at Google I/O.
Read the rest of this entry at http://blog.caucho.com/?p=196.