I received an invitation to the private beta for a new PHP deployment platform called Pagoda Box. Things didn't work right out of the box at first, as I was trying to test the ability to deploy a Symphony CMS site, and Symphony requires some very specific Apache rewrite rules. However, Pagoda Box is not a LAMP stack and it's not a development platform. The goal is to simplify the process of deploying an application and scaling the application.

But the nice folks at Pagoda Box have been very accommodating, going so far as to use Symphony as an example of how to rewrite Symphony's Apache rewrite rules to the format used by the Pagoda Box configuration file.

Git Deployment

Deploying applications is managed through GitHub. Files in writable directories are shared across the cloud and cannot be executable. This represents a challenge for Symphony, since there are executable files in the workspace directory, including events and data sources.

All files that need to be executable must be part of the repository. So what about the Symphony configuration file? It is an executable PHP file. The database credentials would be wide open for everyone to see if the configuration file is pushed to a public GitHub repository.

Database Configuration

Pagoda Box uses an additional level of security which ensures that only owners or specified collaborators are able to connect to the database through a database tunnel. So, the database configuration settings can be added to the repository as part of the config.php.

Shared Writable Directories

Symphony requires that certain directories need to be writable, such as manifest/cache, manifest/logs and manifest/tmp. There may also be directories in the workspace folder for uploaded files. These files can be accessed through SSH or SFTP, but must be specified in the .box file.

Develop Locally, Deploy Globally

The workflow will require developing locally to create data sources, events and XSLT template files. These are then added to the repository and pushed to GitHub and deployed. This then presents a problem. How do you sync the database? It will definitely be necessary to use the Database Synchroniser extension to track changes locally and to apply the SQL to migrate the changes when deploying the site.

Because the install process requires writable directories, it will not be possible to install in the usual fashion on Pagoda Box. To install Symphony, install locally, export the database, then open a tunnel and import the database to the Pagoda Box database. As an example of a working install of Symphony using the default theme, I have created a GitHub repository with the .box file configuration settings required for Symphony's PHP extensions, rewrite rules, shared writable directories and uploads directory.

Private Beta

I have 10 invites available for anyone who would like to participate in the Pagoda Box Private Beta. If you'd like to try out Symphony on Pagoda Box, reply to this discussion.

Symphony on Pagoda Box

You can view this article and the working Symphony install based on this GitHub repository at

I would be interested.

Hey Brian. Invite sent! 9 invites left. (Brian will probably get 10 more.)

Yeah I think there are a bunch of us with invites, so ask away!

It sounds like a great service. I'd like an invite to test it.

@angelo, send me an email at bauhouse at gmail dot com and I'll send an invite to your email address.

I just sent it to you… Thanks

Invite sent :-)

I have invites as well if Stephen runs out

Create an account or sign in to comment.

Symphony • Open Source XSLT CMS

Server Requirements

  • PHP 5.3-5.6 or 7.0-7.3
  • PHP's LibXML module, with the XSLT extension enabled (--with-xsl)
  • MySQL 5.5 or above
  • An Apache or Litespeed webserver
  • Apache's mod_rewrite module or equivalent

Compatible Hosts

Sign in

Login details