Adminstering Large Number of WordPress Sites

I have inherited a situation where our team supports over 100+ separate WordPress installs for various clients. I am looking to make the whole process a bit more efficient.

For all of those in a similar situation of managing a large number of WordPress installs:

Read More

Are there any tools or techniques that are helpful? The thought of migrating all of these to 3.0.2 by logging in or writing a script from scratch both sound particularly unappealing.

Related posts

Leave a Reply

4 comments

  1. Well it depends on how/where they are hosted. If if they are hosted on different servers or the same I would still use the command line and a script file. If they all have different usernames/passwords you going to have to write a lot. Pre-planning will save you a ton of time in maintenance.

    First it would be best to get some data on all the sites, for instance versions.

    Here is an example of a script file for multiple servers,
    http://www.cyberciti.biz/tips/execute-commands-on-multiple-linux-or-unix-servers.html
    but in your case you would do something like
    grep wp_version wp-includes/version.php to get all the version info.

    Of course if they all have diff admin passwords you would have to include each one.

    An alternative would be to write a script to crawl the sites to grab the meta generator tags ( though they are sometimes disabled).

    I would also do a mass backup using the command line and a similar script, possibly automated to a date based dir and using an sql dump.

    You can then also update to the latest version for all 100+ servers using a command to run a script file.

    The big drawback would by incompatible plug-ins/themes or if any core code was edited, this is why I would try and gather as much data as possible to avoid any issues with keeping them up to date.

    I do not know of anyway to automate getting a list of active plugins though, so you might have to manually get some info and hopefully you have command line access to the sites.

    It might take a while to set this and and perfect it, but the benefit is that you can tell your boss it takes 2 weeks, and that will leave you with 1.9 weeks of free time.

  2. Theres no limit to the number of ways to manage this situation.

    I wrote a script that uses

      mount --bind   
    

    to link all of the wordpress core files to a single location on the server, which is mounted as read-only even though the files can be edited via the one folder.

    The two directories I have bound are wp-admin and wp-includes (not wp-content)
    as well as wp-settings.php and any other files besides wp-config.php

    With this setup its as easy as doing this to upgrade:

     cd /wordpress-master
     wget http://www.wordpress.org/wordpress-latest.zip
     unzip wordpress-latest.zip
     cd wordpress
     mv wp-admin ../
     mv wp-includes ../
     mv *.php ../
    

    Done.

    It takes me around 15 seconds to upgrade 50+ sites. Not to mention that all of the wordpress core files are secured from anybody who manages to hack into the FTP or something weird like that.


    So for theme compatability issues, it is possible to do this for your setup:
    (heres how mine is)

     /vhosts/master/4.5.2/   has  wordpress v4.5.2
     /vhosts/master/4.5.8/   has  wordpress v4.5.8
     /vhosts/master/4.6.2/   has  wordpress v4.6.2
    

    an update script might have this in it: (in psuedo code)

     read a file containing the version mounted to each wordpress site,
    
     foreach site {
          unmount the current site's bound files
    
          mount the current site's upgrade version
    
          execute 'wget (sitename/index.php)'  and save to a file
    
          if the file contains the </html>  tag  near the end 
               then it the site upgrade completed, 
               leave the new binding and 
               update the file with the new version
    
    
    
          if it doesnt, then the upgrade failed
                  unmount the site from the newest version,  
                  remount it back to the version in the file
    
     }
    
  3. I know this was asked a while ago, but you should check out ManageWP. It’s still in beta, so it’s got some quirks, and I think you can only manage up to 100 sites there, though you may be able to ask for permission to manage more. You can upgrade sites and plugins from this one dashboard, post to multiple sites, and more. They’re adding new features all the time, like the ability to backup and clones sites.

    It was created by Vladimir Prelovac. http://managewp.com/

  4. You need to think about multiple situations. I like Mike Nickaloff’s approach but what if your 56th wordpress site’s theme uses out dated theme and it’s not compatible with your latest WordPress core update? It will crash that particular site when you upgrade your core. What if a client who hosts site on your server wants to migrate to different agency or developer? If you use ManageWP approach, your site will bound to ManageWP. In your situation, I would look for managed WordPress host, such as WPEngine, that can manage server side administration for you. Managed WordPress hosting providers will administer server for you and it will help you resolve issue very quickly.