WordPress Mass Management Tools is a small collection of tools for managing multiple WordPress installations on a Unix/Linux/Mac server (or perhaps a Windows server with Cygwin (untested)).
Yes, users can often self-install via Fantastico or similar programs, but what guarantee do you have that they’ll upgrade as soon as new releases become available? Letting users run old versions of web software is a great way to get hacked. This kit lets you take control of users’ installations by checking them out via svn and upgrading them en masse.
At Birdhouse Hosting we use WordPress Mass Management Tools to create all new installations. When WP updates are released, we’re able to upgrade more than 100 WP installations belonging to 80+ users in a few minutes flat.
The kit is designed to be run by root – these are not tools for WordPress end users. The kit assumes basic knowledge of the bash shell.
This kit replaces the old wp-create and wp-mass-upgrade scripts which were distributed separately and are no longer supported. Includes:
wp-create.sh: Super fast way to install WordPress for clients, via subversion. Performs the following tasks:
- Gather installation info
- Create install dir and check out a copy of WordPress
- Create database, db user, set db privs via external .sql file
- Create WP config file
- Create upload dir and set filesystem permissions
- Generate array line for wp-sites.sh
Final setup is done via browser.
wp-mass-upgrade.sh: Iterates through all sites listed in wp-sites.sh, backs up the site’s database, upgrades to a specified version of WordPress, and sends the site owner email announcing the upgrade.
wp-mass-plugins.sh: Generates a list of all active plugins used by all sites on the server. The list can be compared to lists of known-incompatible plugins to help you make decisions about whether to skip any sites on the list.
See the included readme.txt for documentation.
Want to contribute/make this project better? It’s also available at github.
Thank you for updating these, they have come in very handy.
SWEET!
This is going to come in So handy, thank you very much
Thanks so much for sharing this, Scot!
Would you happen to have any experience getting this set up on CentOS running Plesk?
In your instructions, you note “the path to svn on your server”. Is this the path to the svn module, or the path to a newly created svn repo?
Lee – I do run CentOS, but not Plesk. The only thing that might be different would be the way customer databases are named – you’ll need to tweak that part of the script to match the way dbs are named. If you get it working let me know and I’ll tweak the script to make it an option.
The path to the svn binary. Most likely just type “which svn” and enter the result. I only made it an option because I have multiple svn versions on my server and wanted to make sure the correct one gets used.
Pingback: wordpress install automation - cPanel Forums
If you wanted to add further plugins and themes to the install, is there a way to do this (some way of updating svn:external prop in plugins and themes dir)?
Yes, svn:external would be the way to do it, but I’ve never looked into it. If you modify the script to do that, please share!
It would be great if the group for files could be user defined, just like the owner of the files is.
Ofutur – Would you like to see all files in the tree set to user:group, or would you want some differentiation in the tree (e.g. all files set to user:user except for files under wp-content which would be user:group)?
Under which licence did you publish this? I would like to make some adjustments. Are you ok to publish your code on git?
What do think about adding functionality to update plug-ins?
Let me know!
Never thought about a license – it’s just a shell script. I’ve thought about adding plugin support before, but decided it’s too much of a rat’s nest. Too easy to break people’s sites, and too tricky to keep track of all the plugins each site has installed. What are your ideas on this?
Hello,
This script set is exactly what I was looking for.
I didn’t have the time to dig in but from what I’ve seen so far it looks great.
I started a thread on wordpress’s forum (http://wordpress.org/support/topic/multiple-separated-blogs-administration?replies=2) a while ago.
I fully agree with the idea of a git repo to allow improvement over the existing script.
Shacker: I think you should take the lead on the git repo. As the original author.
Volkan or myself could also create it, what’s the status on this ?
Thanks anyway,
John.
Hey John – Good idea, I will do this. Hopefully later today!
John – This project is now available on github:
https://github.com/shacker/wp-batch-manage
Ready for pull requests!
If your sites are on different servers (with FTP, SFTP, FTPS or filesystem access), you may be interested in my product, WordShell: http://wordshell.net.
Example command to upgrade WP core on every site (using WP’s own internal routines, so is as safe as WP itself is):
wordshell all –remotecli=coreupgrade
Does far more than that – full plugin management, version control, rollbacks and more.