10 years ago I moved bavatuesdays into what was then a WordPress Multiuser (WPMU) site, a setup which would now be known as a multi-network WordPress Multisite (WPMS) instance. I had the idea back in March of 2008 to take all my different sites, such as jimgroom.net, , planetmiles.net, etc., and move them under one WPMU roof WPMU at wpmued.org. But the kicker was they would not just be mapped domains, but each would be in its own network that could have other sites within it, such as radicalreuse. running on the same WPMU instance. It was fun stuff, and it held up quite well for a decade.
That said, as time went on many of the sites needed to be archived, and eventually many of the plugins running this setup were woefully outdated. Not only was my blog’s error log ridiculously active, but I was running into issues getting my site running cleanly over https. So, in the end, I decided to pull everything apart. I appreciate the convenience of having all my sites running off a single WordPress—it made updates to new versions, plugins and themes dead simple. But, in the end, the multi-network was overkill. Bavatuesdays was the only site that was truly active, and just about everything else was long overdue for some Sitesucker action. So when the setup started getting in the way of some fairly simple and important things like securing the site, I figured it was high time to invest in an overhaul. So, this post documents the beginnings of that with bavatuesdays (I still have a few more networks within that WPMU to clean out).
As I mentioned and documented a few posts ago when working on the UNLV migration, we had the process for moving individual sites within a WPMS into their own WordPress instances down to a science. I pointed the domain away from the WPMS instance to a new directory called and installed a blank WordPress there. I then dropped all the database tables and imported the SQL export I got from Sequel Pro with the appropriate tables (namely all the tables for the blog with ID 30—which was bavatuesdays—as well as the wp_user and wp_usermeta tables). [Before importing the SQL file I did a quick find and replace of all the tables defined by the blog ID, i.e. wp_30_ , with wp_ .] I also downloaded the entire WPMS site locally so I could quickly upload the files, themes and plugins using rsync. Below is the command line code for that, which was run from the wp-content directory of the downloaded WPMU files on my desktop:
rsync -avz blogs.dir/30/files/ [email protected]:/home/jgroom//wp-content/uploads/ rsync -avz plugins/ [email protected]:/home/jgroom//wp-content/plugins/ rsync -avz themes/ [email protected]:/home/jgroom//wp-content/themes/
After that, I did a few find and replace commands to clean up the database paths and URLs throughout the blog in the directory where the new WordPress site lives on the server:
wp --allow-root search-replace 'blogs.dir/30/files' 'uploads' wp --allow-root search-replace '/files' '/wp-content/uploads'
And finally, I got rid of all extra users and their metadata from wp_user and wp_usermeta using the following commands in the SQL section of MyPHPAdmin (my main admin account has the ID of 1, which is why this is the only user not deleted):
DELETE FROM `wp_users` WHERE `ID`!=1; DELETE FROM `wp_usermeta` WHERE `user_id`!=1;
The final thing I had to do is clean up the names in the wp_usermeta table. The privileges row was not giving me proper access and I realized there were a bunch of instances of the wp_X_ (where X = a number) that seemed to be preventing me from accessing all elements of the dashboard, so I cleaned up a bunch of those manually by changing the tables references back to wp_. I have to look into this in more detail as to why, but it did solve my issue.
And for the first time in over a decade, the bava is running on a single instance of WordPress. I did the same for all the subsites of bavatuesdays, namely festival., tumblr., and radicalreuse.. I don’t think there are any other subsites under the bava worth saving, and I will most likely convert these 3 into stand alone HTML site using Sitesucker given they’re all inactive at this point. I really enjoy doing this kind of thing, it makes me feel good to do some technical upkeep on a space I have put so much time and energy into over the last 13 years, it’s almost like fixing things around an old house (another favorite past time) or mowing the lawn, there is a certain satisfaction in these things for me, and in that way the bava.blog just keeps on giving?
I just did something suitably odd for pressedconf.org
Had to duplicate the old main site into a new sub domain multisite (for 2018) and did it all with sql and copying files
Then when I was done and trying to fix one error I found https://en-gb.wordpress.org/plugins/multisite-clone-duplicator/
That’s a pretty useful plugin, thanks for the tip here. I may revert back to WPMS networks in the future, but it feels good to pull things apart for the time being 🙂
Sharing the plugin because people will google 🙂
If you could easily do shared urls on multisite, now that’d be fun 🙂
(there is some server hijinks you can do with symlinks i think)