Most of you who read this blog are software developers. You know the importance of separate DTAP (Development, Testing, Acceptance, and Production) environments. However, not everyone understands this. I was recently at the WordPress Nashville meetup when someone mentioned having a development environment for their blog and you could here the crickets chirping. A lot of the attendees of that – and many other WordPress meetups – are not developers and may have never considered the need for a development area, after all, they don’t develop, right?
Everyone however, experiments. Whether it’s a new theme or a new plugin, you really, really need someplace to test things. one of the worst thing you can do is what I do with this blog, just install things and play with them in production. You need someplace where you can try out new plugins, new ideas, new themes. Not necessarily someplace where you post all your content, WordPress does a great job of allowing you to test things out content-wise before committing.
Development systems used to mean having your own server; as a matter of fact, I still do have one running here at the house. I do not recommend this though. It’s a gross waste of resources if you are just testing out a single blog, or even a few. You could also load WordPress on your laptop or desktop but I don’t recommend this either. To make it work though, you have to install and maintain a complete “web stack” (Apache, PHP, MySQL) This is just more software on your machine that has to be kept up to date.
There is a solution though, actually, I’ll present you with two. One for PHP developers who know what they are doing and want control, and one for regular bloggers who just want someplace to test plugins and themes before pushing them live. In both cases though, the services are free.
The Developer’s Solution
If you know what an ssh key is, and you understand source code control systems, then the solution you want is phpcloud.com. it’s a free service from Zend that is specifically designed for developers. phpcloud.com is a cloud-based development hosting. They host your project that you are working on, not the ones in production. You can’t use phpcloud.com for production systems. (and by can’t I don’t mean it’s against their ToS, I mean it won’t work. it’s not designed for that.)
Getting setup is easy.
- Create an account. Find me on twitter if you need a beta invite and don’t know how to get one.
- Create a Container.
- Create an application inside that container. At this point, you have the option of selecting what kind of application, select WordPress.
- Using git, clone the application to your local machine.
- Code or experiment, commit, push, test, rinse repeat.
Again, this is a developer solution. I left out a lot of small details like setting up keys, etc. The docs tell you how to do that but if you aren’t familiar with the concepts, . You wouldn’t play with a jackhammer just because you thought ti was pretty, don’t play with tools like phpcloud.com unless you understand them.
Using phpcloud.com you can install themes, plugins, hack the core, (don’t you dare) or do just about anything else. To install plugins, you unpack them locally in the plugins directory, commit them to the repo and push. Then go into your test area and activate them. It’s not quite as simple as using the built-in installer but you know the saying “with great power…”.
Once you have tested a plugin, theme, widget or idea and know that it works properly, feel free to install in production knowing that you’ve done your due diligence.
I will mention one downside of phpcloud.com for WordPress developers. The automatic install and upgrade system will not work. You can try, you can fiddle with permissions all you want but at the end of the day, it’s just not going to work. Boaz and the team are aware of this shortcoming and it’s on their roadmap to fix.
The Blogger’s Solution
Ok, if you aren’t a developer, there’s still a way for you to get a free development area and it’s still important for you to test thing before you start mucking around with your production system. For you non-developers, use the free offering from my friends over at phpfog.com. Like phpcloud.com, there are limits to what you can do with the free offering but you should be able to get up and running with the free offering. The main limit you will hit is the 20MB space limit on your database. If you like phpfog.com, you may want to consider either setting up a pay account or moving all your hosting over to them. If you do the latter though, don’t just use your testing area as your new production area. If you do, you are really missing the point of this post.
- Create an account at phpfog.com
- Once in, select your “Shared Cloud”. (There is a button for it.)
- Create an app in your shared cloud.
- Select WordPress
- Answer the questions.
One of the questions is what domain name to use. If you are not familiar with DNS settings, use a phpfog.com subdomain. It’s easier that way. If you do understand DNS and know what you are doing, you can setup test.yourdomain.com or beta.yourdomain.com or something like that.
- Be patient. No matter what it says, it can take up to five minutes for your app to be created.
Now you can begin installing plugins, themes, and widgets. If you are working with a developer, they can setup their ssh keys and get to the source code. Unlike phpcloud.com you can use WordPress’ automatic install and update tools to keep your test site up to date.
No matter which way you go – phpcloud.com, phpfog.com, or some other solution – every WordPress blogger needs to have a development area that is wholly separate from your production environment. This means don’t just install another instance of WordPress on your production server and call it test. It needs to be separate from your production server.
In this post we’ve discussed two solutions that you can use to get a test system up and running for free but there are other ways to accomplish this. The takeaway is not to use one of these services but to get a test system setup and use that for all your experimenting.
Until next time,
I <3 |<
Photo Credit: Huasonic
Released under a Creative Commons license.