Automatically Rebuilding an EE Sandbox
by Ryan Irelan
As part of this site and other development work, I find myself testing a lot of EE add-ons. I also work on my own add-ons. For both of these activities it’s required to have a local install of ExpressionEngine, configured just how I like it. I call it my EE Sandbox, a place where I can play in EE. I had been creating my sandbox manually each time I needed to refresh it, but that quickly became too much work each and every time I needed to start over.
I began to put together an automated way to do this and came across this shell script in the EE forums, which I used as an inspiration for my own script. My script does a complete restore of ExpressioneEngine; this includes the database and all of the files. Because of this, you only want to use this script on a true sandbox—an EE installation that is not at all sacred.
Be Prepared
In order to have an EE sandbox that you will find useful over and over again, you need to do some work up front configuring your EE installation just to your liking. Install your favorite add-ons, tweak your settings and preferences, create some sample users; do whatever you need to make EE your ideal setup. Since I’m using my sandbox to test and develop add-ons, I kept my set up very minimal and as near “fresh install” as I can.
Some of my sandbox settings:
- Pages Module enabled and a custom tab created pointing to it
- “Weblog” changed to “section”
- Two sections: Pages and Site
- Two sample users, in addition to the Admin user. This comes in handy if I need to quickly test something with more than one user.
With my ideal EE sandbox all set up, it’s now time to “freeze” it by creating a database dump (using phpMyAdmin or mysqladmin) and saving it somewhere on my computer. I also create a tarball of the entire site files and store those in the same location as the database dump.
Meet the Script
This script is for advanced users. If you feel uncomfortable running scripts from the command line, you should probably not use this script.
Here’s how it works:
- The sandbox database is dropped and then recreated from a database dump.
- The existing application files are deleted from the web root.
- A tarball containing the EE application files is copied over to your web root location and unpacked. The tarball is then removed.
- Permissions are set on certain files and directories, as required by ExpressionEngine.
Every time you run the script the existing sandbox is completely destroyed and then rebuilt from your database dump and tarball of the site files.
To install and use the script:
- Create your ideal EE sandbox. Dump the database and tarball the files.
- Download the script and make it executable.
- Fill out the settings at the top of the script.
- Run the script from the command line to restore your EE Sandbox.