The past month or so has given us a lot of blog posts on how, and why we should use automated build and deploy systems.
One of the best deployment systems out there (imho), is by the Ruby community, and it’s called Capistrano. We’ve been using it internally since this summer to manage and deploy our Symfony application with great success. I’ll be sharing the methodology to “Capify” a Symfony project soon, but first I wanted to share the WordPress-Capistrano project.
The goals of the project are:
- Make deployment and upgrades of WordPress easier for multiple installs of wordpress on multiple hosts
- Secure WordPress in production by setting stricter permissions, to prevent SQL/XSS attacks that modify PHP files.
- Allow one to easily manage the 3 tiered development cycle, but with WordPress
- Make deployment of WordPress simpler on the Rackspace Cloud
- Synchronization of WordPress stages (move db from production to stage, push configuration settings to production)
Currently, you can clone the repository, configure wordpress locally, setup your Capistrano recipe and start deploying.
I’ve tried to comment out the recipes, but I’m sure I need to do a better job. Feel free to ask me any questions, post issues and patches.
I’m also looking into the Moonshine project, and perhaps forking it to be independent of Rails, I’m really digging it’s ease of use and depth of features.
psst…you might want to include the link to the github project
http://github.com/vluther/wordpress-capistrano/
I find it interesting that you decided to use a ruby build tool for PHP projects. What made you decide to use Capistrano rather than say Phing?
The amount of documentation for Capistrano and the fact that I wanted to learn Ruby, without learning RoR.
The second reason is the sheer amount of awesomeness moonshine. I've seen my friends who are RoR guys, managing/deploying their entire server with it. It's very mature and useful.
Fair enough and thanks for the reply.
We use Phing ourselves for some pretty major deployments. Although there is some pressure from others to switch to other build tools (e.g. Ant, Capistrano etc) but I have always resisted moving outside the core development language unless there is good reason.
I'd use or try phing, I'm not opposed to it, Capistrano just made sense to me. If you have a shell phing environment I can test with, I wouldn't mind adding that to the project, and changing the name to wordpress-automated or something.
Does Phing allow you to manage a server? I've seen people use the moonshine plugin to handle package management and server configuration, which is really sexy for me. It's like cfconfig, but better documented and very easy to use.
[...] on his blog today Vid Luther talks about deploying WordPress using Ruby (specifically Capistrano) to manage the build and deployment of you web applications. [...]
[...] Managing WordPress and other PHP projects with Ruby [...]
I wrote a tutorial some time ago detailing how to deploy a PHP application with Capistrano.
http://mathew-davies.co.uk/index.php/2009/10/de…
I don't think there's a need for a wordpress plugin though. I learnt how to customize the recipe within a couple of days.
Looking forward to see what you're coming up with, should be interesting.
I wrote a tutorial some time ago detailing how to deploy a PHP application with Capistrano.
http://mathew-davies.co.uk/index.php/2009/10/de…
I don't think there's a need for a wordpress plugin though. I learnt how to customize the recipe within a couple of days.
Looking forward to see what you're coming up with, should be interesting.
Could you share your deploy.rb for deploying to RackSpace Cloud Sites?
Ruby in no doubt is best platform….i hope its also vaild for WP 3.0 version which just came in market………However i like all the functions of WP 3.0 and its more easy to customize