Hackadelic Multiblog Kit

DrilledWelcome to the home of Hackadelic Multiblog Kit – a toolkit that assists with the creation of multi-blogs on top of Virtual Multiblog, as well as with proper Virtual Multiblog setup.

Download the latest version at wordpres.org

[toc class=toc-right]

About Multiblog Kit

If you are maintaining a WordPress blog, you know how much effort it is to keep up with the pace at which plugins, themes, and WP itself, are updated, and do all the other work needed to keep your site a secure and attractive place. Imagine you’d have to mutliply that effort with every new site you create. Soon you would have to quit your day job to maintain your sites.

Clearly, it is desirable to serve all your sites from a single WordPress installation.

This is why I started my Quest for a Multi-Blog Solution.» And I found a technology to accomplish just that: Virtual Multiblog (or VMB for short).

However, for a non-techy user, VMB is a bit complicated to setup and use. And that is where Hackadelic Multiblog Kit comes into play.

Features

  • Easy to use.
  • Operates on top of stable and reliable technology – Virtual Multiblog.
  • Facilitates learning VMB ins and outs by the means of “dry run” and detailed logging of the performed actions.
  • Automates the transformation of a normal WordPress installation into a multi-blog platform.
  • Automates the creation of new blogs from a single code base, and with a single database.

Recent Releases

Usage (with Screenshots)

Prerequisite for using the plugin is that you have the VMB code files uploaded under wp-content. This will create a new directory, wp-content/multiblog, that contains all required VMB files.

Note: Though VMB supports other directory layouts, Multiblog Kit does not.

Using the plugin is straight forward. After installing and activating it, you will find a new admin page: Tools->Multiblog Kit. This page contains several panes, one per possible operation. Which operations are possible depends on the VMB state that the plugin detects, and they reflect the typical work flow in a multi-blog.

All operations provide an “I want to continue” check box below the button that starts the operation. If not checked, a “dry run” will be performed. That is, actions with persistent effects (writing to files or copying files) will not be performed. Instead, what would have been written is displayed on screen. That way, you can learn the basics of how to configure VMB manually. After viewing it, you can hit the browser back button, tick the checkbox, and head for the real thing.

Attention: Performing file write operations requires adequate file system permissions. All operations need permissions to write to the wp-content/multiblog/config directory. Additionally, VMB activation and deactivation needย write permissions for wp-config.php (and wp-config.php.vmbkit-backup after it’s been created) in the WP root directory.

Activate VMB

When the plugin detects that VMB is there, but it has not been activated, it offers a single operation: to activate it.

Caveat: This operation will modify your wp-config.php file. Although a backup file is created, it is advised that you make one yourself initially (and name it differently than wp-config.php.vmbkit-backup).

Once VMB is active, you will be given two options:

  • to deactivate it
  • to create a new blog

Deactivate VMB

This will basically restore wp-config.php from wp-config.php.vmb-backup.

You must deactivate VMB before removing it!1

Create A New Blog

Here, you will be prompted to enter a domain/subdomain (must already exist and point to your blog directory – just like your first domain), a database table prefix (choose it carefully), and optionally a language for the new blog (you will need the appropriate language pack). Then, tick the checkbox, hit the button, and follow the instructions. You will be taken to a blog installation that will setup the appropriate database tables and give you a new, empty blog. (Which you can configure the usual way. The difference is that all themes and plugins are already there, ready to activate them as you see fit.)

Is this plugin worth something to you?
If you use this plug-in, please consider making a donation to support the further development. Donate whatever you feel appropriate. Any amount is appreciated.
Thank you.

  1. Note though that deactivatin VMB is not the same as deactivating the VMBKit plugin. The latter is done from within the Plugin dashboard page. []

55 Comments

  • I’m trying to migrate 10 stand alone installs into 1 install using VMB Kit.

    Does anyone know how I can do all the installing/importing etc. in advance of switching the domains over so there is no down time?

  • I’m looking to develop a blog system for our local sports clubs, where posts from one blog are displayed on another. The idea is to act as a central hub for all local sport. It contains 3 levels:

    * Each sports club has it’s own blog, where the club can post news, cancellations, results etc (they can only post to their own “blog”).
    * There is then a “blog” for each sport which just pulls all the latest posts from each club of that sport (only admin can post directly to this blog).
    * Lastly, there is the “main page blog”, which lists the latest posts from all sports. This is the page that people will see when they visit the site (and again, only admin can post directly to this blog).

    So the structure would look a bit like this diagram.

    Is Multiblog kit the solution for me? (+ some sort of plugin to pull posts from other blogs onto the “parent” blogs?)

    • Cory, VMB and VMBKit enable your blogs to share the code, but not their data. What you are looking for is called cross-posting. The only blog system I know of that natively supports cross-posting is b2evolution. I seriously considered it for this blog before I decided to go with WP. (My main reason was that their community is not nearly as large as with WP, so there are not many free themes and extensions that one can get.)

  • is it possible to add some ‘security’ ??
    example,
    only master site can add/remove plugins, themes,
    noone can edit plugins, etc etc…

    tnx.

    • @dennyhalim.com: With VMB, there is no master site. All blogs are equal. BUT: You don’t control security per blog anyway, but per user. On any of the blogs you can always set up users with less privileges. You just don’t provide them the master credentials, and you’re done.

  • Hi Hackadelic,

    Finally got vmb active, but with activating it gives this warning:

    Warning: file_put_contents() expects parameter 3 to be long, string given in /home/vhosts/beijerdesign.com/httpdocs/gaderidder/wp-content/plugins/vmbkit/hackadelic-vmbkit.php on line 300

    Warning: file_put_contents() expects parameter 3 to be long, string given in /home/vhosts/beijerdesign.com/httpdocs/gaderidder/wp-content/plugins/vmbkit/hackadelic-vmbkit.php on line 300

    Warning: file_put_contents() expects parameter 3 to be long, string given in /home/vhosts/beijerdesign.com/httpdocs/gaderidder/wp-content/plugins/vmbkit/hackadelic-vmbkit.php on line 300

    After that my connection with the database is gone.

    Help.

    • Mirjam, this seems like a PHP version thing. I’ll try to implement a workaround in the next version.

      Which PHP version do you use?

  • oh thank you, so if I will put it in a subdomain it will work? Later on it wil go its own directory, but before that I hope it will work the way I want it. Under Groepen in ‘Nieuwtjes uit de klas’ I need 3 or 4 blogs, for every part of the school. Will it work?

    Thanks for yout answer.

    • Mirjam, here it works with domains and subdomains that point to the same directory. I suppose it will work for you, too. Alas, I have no chance to test the multiblog setup on server configurations other than mine, so…

  • ok, i tried it again and it says again that :
    To use Virtual Mutliblog, it needs to be uploaded into the wp-content directory.

    Download Virtual Mutliblog at striderweb.com, or read a review about its features.

    Last time i did that I almost had to start over again. According to your description this should not be normal????

  • Hi Hackadelic,

    Im looking for a plugin for my site. I need 3 blog’s on one site. Is this possible with your plugin?
    I tried to install your plugin to try, but when wp asked me to install again, I was afraid to lose my excisiting data. Is that true?
    Thanks already.

    • Mirjam, I see your blog uses a subdirectory pattern (beijerdesign.com/gaderidder). VMBKit does not support that pattern yet.

  • Hi there,

    Has there been any other progress on the creation of a second set of tables when installing the VMBKit plugin?

    I experienced the same thing. I installed a plain blog into the root domain installed the plugin and during the install generated a set of tables that the root domain now uses.

    Was it determined that it is normal for that to happen?

    Also I am a bit confused about the domain/sub domains abilities.

    I use a cpanel server and I have the ability to park a domain on top of the main domain or create an addon domain to a sub folder.

    I also can create sub domains of the main domain or parked domains assigned to that account.

    Which options will work and will not work?

    I don’t want to try then have to start all over so I wish to fully understand first what can and cant be done in regards to cpanel’s parked, addon and sub domain options in respect to your plugin.

    Thanks for such a great contribution I look forward to more enhancements to it.

    One thing I would like to see if a shared user table designation that would allow all blogs to use the same user tables. No matter where they signup they would use that login in other multiblogs we have installed.

    We had a similar feature with postnuke cms where we could designate in each multisite what table(s) user prefix we wanted to use for that multisite. This allowed for admins to add sites that could or could not be part of the network of sites. In the case of postnuke there were a small number of tables that pertained to the users for the site that were shared. Then there was a modules table (same as plugins for wp) that could be shared on a per module basis so modules configured and used on one multisite could be used as they were configured across another multisite installation.

    I look forward to the direction you are going with this and look forward to any feedback as to the direction this is going and if there is anymore progress to this plugin or if it has been set aside.

    Thanks
    Richard Wing

    • Hi Richard,

      I’m using VMB+VMBKit myself, and I never had problems. That said, I can only tell for my own configuration / server conditions what works and what doesn’t. I cannot possibly test the code under all server conditions out there. Hence I’m highly dependent on precise problem descriptions, and much more so with this than with my other plugins.

      Alas, I haven’t received any that describe your problem sufficiently. (An example to explain what I mean by “precise”: When you say “during the install”, what install do you mean? Like when you activated the plugin, or when you activated VMB, or something else?)

      If you would like to be the first one to provide precise a problem report, please contact me, so we can continue the conversation by email (as I suppose there may be details that we’d exchange that you do not want displayed publicly).

      A shared user table is definitely possible. I am going to include that option at some point.

      Regarding addon and sub-domains: What doesn’t work with VMBKit are subdirectories. Both should generally work, as long as the directory they are all pointing to is the same directory. On the other hand, you had problems that I can’t reproduce here, so I can’t guarantee there will be no others.

      An (exceptional) offer that I can make to you is to assist you with the setup. Contact me if you need help.

  • Thats what I thought… ๐Ÿ™
    So, do you think it would be possible to actually have 1 single wp installation, all the domains pointing to 1 real blog, but somehow have a script that detects from which domain the users is coming and perform a certain action for each?

    • Definitely. It’s just that the “certain action” can quickly become arbitrarily complex.

  • Hello!
    Im a total noob at virtual multi blogging and Im here to ask if it’s actually what I need to accomplish the following:

    I have 5 domains.
    All the domains must share the same posts and users BUT they must have different SEO settings and different header images.

    Would virtual multi blog be my solution?
    Is there any other way to achieve what I need?

    Thank you! ๐Ÿ™‚

    • Dukessa, VMB-driven blogs share the code, but not usually the database. There are ways to share some individual database tables, but they are limited (and there is no easy way to do such a setup).

      Moreover, even with shared database tables I doubt you could achive exactly what you want (at least not w/o data duplcation). It seems you need some blog settings shared, and some not. But all settings are stored in a single database table, and you can’t share PARTS of database tables.

  • Tried to get VMB working, but couldnt. Here’s what happened.

    1. downloaded the kit directory “vmbkit”
    2. copied it to wp-content/plugins so now I have wp-content/plugins/vmbkit
    3. went into my admin page and activated the plugin
    4. went to tools > multiblog kit and it says “virtual multiblog not found”
    5. went back to ftp and saw that no multiblog directory had been installed under wp-content.

    not sure where to go from here.

    VMB sounds like a great idea compared to MU. Cant wait to see how this ends up working.

    • Kurt, have you read my post? There are several links to Virtual Multiblog in there.

  • @Hackadelic,

    Thanks for developing this wonderful plugin. I have finally got around getting it to display the initial installation step. It confirms ok some files have been created, some written and others copied, which means everything worked out fine.

    But, when I hit the Continue button, it keeps bringing me to the initial setup page, instead of showing the 2 options you stated earlier in the page (deactivate VMB and create a new blog).

    I found out that my wp-config-vmb.php is empty, though I made it world writable for the install, I checked the multiblog directory as well for the original copy of wp-config-vmb.php which is also surprisingly empty. I checked wp-config.php to see if it’s been written to by VMB, but it still retains all custom wp details, no changes at all.

    I was wondering if there is way I could manually place the required codes for wp-config-vmb.php right into the file @ the original multiblog directory, so when I run the install anew, it’ll simply transfer the input to wp-config-vmb.php in WP root.

    I don’t want to mess-up with anything, because I don’t want to mess my entire blog up.. Quick help will be appreciated.

    Thanks for your time and understanding.

    Cheers.

    • Paul, sorry it didn’t work out as it should.

      Basically there are instructions for that in the VMB documentation (part of the VMB download).

      Because several people are having problems writing files, I think I will add a feature where you can just copy and paste the text of the configuration files manually.

  • @Hackadelic – Gotcha about the scope of your plugin. Here’s to hoping Stephen can think about single sign on for the future.

    @Stephen – You’re right about RSS feeds for displaying other VMB content, which will work fine. It’s just not instant – we do live in an ADHD world! ๐Ÿ˜‰

    Great work you guys!

  • Ray — Your requests are really something that would have to be added as part of “core” Virtual Multiblog. This page is for a plugin that helps you use VMB, but VMB is a separate thing.

    I would someday like to add “unified login” to VMB. I’ve seen the blog you link to. As for pulling data from another blog, you might be able to hack it now using RSS. Again something possibly for the future.

    Hackadelic — It’s amazing what you can do without hacking core files in WP ๐Ÿ™‚ Check out the latest comment on the VMB page — I have a link to a preview of VMB 2.6, which includes automatic (enforced, actually) plugin activation — a feature that only works with WordPress 2.8.

    I’ve also eliminated the wp-config-vmb.php file. Trying to simplify. Existing installs with the two separate “wp-config”s will still work though.

    Interestingly, I’m seeing comments around the WP community that WP and MU are merging. Not sure what that entails precisely. I still feel there will be room for VMB as a separate project, but the integration of MU features into WP core might make it easier to add features to VMB.

    • Stephen, I read all about it already. ๐Ÿ™‚ I know that one can be done w/o hacking WP core. (BTW, WPMU 2.7 has a similar auto-plugin feature already AFAIR.) Single sign-on cannot – at least not with WP27, because the capabilities table is accessed directly, via $wpdb->capabilities. But that’s a pretty tiny modification, and can be automated (as part of VMB activation). I haven’t checked WP2.8 out yet though. It may well be that the core hack is not needed there.

      About merging WP and WPMU – it’s the only logical step (and I would have expected that much earlier). But if that means WP is going to dramatically increase resource hunger (approaching WPMU), it would be disappointing. I’m curious how it’ll work out.

  • I will be following this project closely.

    The caveats so far are the following:
    -Single sign-on
    I know you mentioned this might be coming in a future release. I thought I’d push you in the right direction.

    This blog post – http://engine.taffel.se/2008/11/18/multiblog-single-login-in-wp-26/ – has some good information on sharing the user database. It does require modifying the wp-config.php file and I think there’s one other core WP file that needs to be modified as well.

    -Sharing content among VMB blogs
    The ability to list the last x entries from a VMB blog onto another blog will probably be a feature request; I’m just putting it out there now! ๐Ÿ™‚

    A post from the same blog I listed above – http://engine.taffel.se/2008/11/30/combining-content-from-multiple-blogs/ – has a neat function that will pull a WP blog from a different database. You might want to modify it for VMB’s usage.

    • Ray, thanks for you input. I’ll definitely have a look at the posts.

      But let me get one thing straight:

      This project is meant to ease using VMB. I’m afraid your feature wish list would require hacking WordPress core files (as you already assumed). That is definitely out of scope. The beauty of VMB is that it does not modify WP code in any way, hence ensuring forward compatibility. (I’d even go that far to say that if VMB did modify WP core, I would have never chosen it, and if that ever changes, I’ll opt out of updating it.)

  • I think G’s problem has something to do with the auto-prefix functionality. You’re being tripped up by “Easy Setup”.

    Something important to note: In the $vusers[] list, order can be important. Among other things, if the system can’t figure out the VUSER for some reason, it looks for a $vusers[] array and if it’s there, uses the first one on that list.

    • Stephen, that was my reasoning, too. (That’s how I found out about the auto-prefix – investigating the mentioned issue.)

      So the thing with $vusers[] means your first blog is your default blog. That’s exactly what I would have expected. Again I am astonished by the intuitiveness of VMB ๐Ÿ˜‰

  • Okay, I feel stupid now — don’t know my own system! Heh.

    I was thinking in terms of seeing what your system did by default, but since I had already defined VMB_CONFIG_DIR your plugin correctly used it.

    You are also correct about the redirect URL. The plugin clearly states that it does not handle subdirectory blogs, and as such acted properly.

    I’m so close to the source I forgot to step back a bit in looking at this.

    One thing I’m wondering though — I’m no security expert, but is it safe to have these directories writable? In the WP community I frequently see people saying to make as much as possible non-writable. just food for thought.

    Not a lot to suggest at the moment — you are approaching this pretty well as far as i can see. Subdirectories and such down the road would be nice, but you’re doing one thing at a time and getting it right, which is a good idea.

    One thing — you stress that users must deactivate VMB before removing it. This is true, but they *can* deactivate the *VMBkit Plugin* without deactivating VMB. You might make that distinction better — from experience with VMB, I’m betting people will confuse the two things.

    Note: In making the VUSERS array, stick to full URL (and later URL/directory). Current VMB instructions talk about using just a directory name, but I may be phasing that out in the future. (You’re not doing it at the moment — I’m just saying don’t add it. ๐Ÿ™‚ )

    • Stephen, thank you.

      I can’t say how much security is affected by leaving the directory writable. I’d say it is basically a matter of Linux security, and if we question security in conjunction with write permissions, we can also question it in conjunction with read permissions, considering that mb-autoconfig.php and wp-config.php contain sensible information (ex. database information). I don’t know if changing (and especially granting) permissions from within plugin code that runs in the server process would work in all conditions, but that might be worth trying.

      I added an explanation about the difference between VMB activation and VMBKit plugin activation. Thanks for the suggestion. ๐Ÿ™‚

      Two users (G and Oscar, in earlier comments) have reported issues upon VMB activation by means of VMBKit. Any idea where that could come from?

  • Ok thank you. Nice.

    I am testing the plugin now. I installed a WordPress Blog on testdomain.tld. I installed your plugin and multiblog. Now I have added testdomain2.tld to it.

    How can I point my testdomain2.tld now properly (in the best way) to the testdomain.tld multiblog?

    • Wolfgang, your web host should provide the means for associating domains/subdomains with directories vie their configuration dashboard. Mine does. Contact them for help if in doubt.

      If you use a local WAMP or LAMP test server, you will need to manually tweak the Apache configuration, for example by means of a virtual host. Apache has very extensive documentation that you could consult.

  • Hello,

    Can I use with your multiblog kit all the plugins and themes I want
    from wordpress.org ?

    What are the security plugins I need to securise my multiblog kit ?

    Best,

    Alex

    • Alex, most of them should work. However, plugins that manipulate files, not only the data base, will be a problem. MyCSS is such a plugin, but also plugins that modify .htaccess, like caching plugins.

  • OK I’ll reply to your email with my wp-config. I wonder what version of php are you roking with in your wamp pc environment. I am on a mac btw

    • Hey G, have you forgotten to reply?

      BTW, I’m using PHP 5.2.8, Apache 2.2.11 on my test server.

  • No Hackadelic this was on Vanilla install with no plugins. Happened again

    or
    http://tinypic.com/r/2w7g7km/5

    URL:while error:http://localhost:8888/wordpress1/wp-admin/tools.php?page=vmbkit/hackadelic-vmbkit.php

    • G, then it seems the conversion of wp-config.php to VMB configuration data has failed somehow. It would be great if you could send me your original wp-config.php file (with authentication data made anonymous, of course). I’ll contact you via email on this.

    • Oscar, I could reproduce your symptoms. It’s just a matter of time that I’d be able to find the root cause and eliminate it. ๐Ÿ™‚

  • Can I use different plugin settings with this on different blogs?

    For example the all in one seo plugin: Can i choose my own settings per blog?
    Or the Google XML sitemap plugin and lots of others?

    • Wolfgang, definitely. Every blog stores it’s data separately, so you can have different plugins activated with different settings on different blogs.

  • Can this be used to set up multiple test sites using WAMP on my PC?

    • Will, of course. That’s how I am developing it: WAMP on a PC.

  • Hello Hackadelic!

    What I meant is that by the time I try to activate the plugin I already have the first blog running (obvious), with standard and initial WP configuration, table prefix (wp_), etc. so… why the plugin creates me another set of tables with prefix wp_fragilistico_com_ (the domain of the site)? it looks that if ignores initial prefix and performs another WP installation..
    And I’m pretty sure I couldn’t log me in probably because new config was pointing to this second set of tables so it was looking to another admin user.

    I have installed now (manual way) and it’s fantastic this multiblog thing!

    I hope you get it work!

    • Oscar, I’m puzzled. That happened upont VMB activation?

      The plugin has no code of own to create database tables. Upon VMB activation, all it does is create “mb-autoconfig.php”, “mb-users.php” and (in your case) “mb-config-javalotodo_com.php”, backup the “wp-config.php” file and replace it by the multblog version coming with VMB. Basically the same steps that you would perform manually, and nothing more.

      Upon blog creation, it does not create database tables either. It just adds the configuration for the new blog, and then (after clicking “Continue”) jumps right into WP’s own installation screen.

      Did you see an installation screen? And was it after activation, upon blog creation?

      Oscar, I’d really like to fix this, and I depend on your feedback with this. Thanks in advance.

  • Never mind ignore previous comment i did further research into it, I got an error trying to install it “Error establishing a database connection” after trying to Activate VMB tha is on mamp server on leopard 10.5.7
    mysql 5.0.41 PHP Version 5.2.6

  • How is this different than wpmu

  • Just ran a dry run from within the admin of striderweb.com/nerdaphernalia. I just went with defaults. The files it says it would create look correct, but the location seems wrong. I think you set things up differently than the default. It said it would write to:

    /Users/Steve/Sites/striderweb.com/multiblog-config/mb-users.php

    but by default that should be

    /Users/Steve/Sites/striderweb.com/nerdaphernalia/wp-content/multiblog/config/mb-users.php

    Then the “Continue” button wanted to take me to example.com/nerdaphernalia when it should have been simply example.com

    This has some nice potential, but this version makes a lot of assumptions. Onward to 0.2! ๐Ÿ™‚

    • Stephen, that’s exactly why I specifically asked for your feedback. ๐Ÿ™‚

      I set the VMB config location to (1) VMB_CONFIG_DIR, if it is defined, or (2) VMB_DIR . ‘/config’, if VMB_DIR is defined, or else (c) WP_CONFIG_DIR . ‘/multiblog/config’. Is there something wrong with that?

      About the target URL of the Continue button: It is meant to take you to the installation of the new blog. If the WP files reside in a subdirectory, example.com/blog, but the blog is accessed though “example.com” only (so that “example.com/index.php” includes “example.com/blog/index.php”), then jumping to “http://example.com” while the new database tables are not prepared yet, causes an infinite URL redirection loop (the browser told me). You need to go to “http://example.com/blog” to avoid that and actually start the installation. That’s the case covered in 0.1. It assumes all blogs are accessed uniformly. That is, the blog’s URL path relative to the site’s domain are the same, and all domains point to the same directory. The case where “http://example2.com” points to “example.com/blog” directly is not covered.

      Also, 0.1 does not cover subdirectories, so I guess it won’t work correctly at Nerdaphernalia.

      Anyway, do you have any suggestions on all this (and the shape of 0.2 in general)?

  • Really interesting, seems like an excellent concept. Looking forward to trying it out.

  • Hello Hackadelic!

    As I told you previosly, I just wanted to give some feedback:

    I’ve installed a spanish WP from scratch (2.7.1) directly downloaded from the web. Only changed database access data.
    When installing, WP created all wp_ tables OK. The domain is http://www.fragilistico.com
    Things I’ve observed:
    – First tries of activating the plugin, I got PHP access denied errors. I think you should especify better the files/directories to make writable. I believe a minimum was to make writable the file wp-config.php (as you say) but also the dir /multiblog/config.
    – Finally I got it activated, and I can see at the database like it has created another blog (I got a set of tables wp_ and another wp_fragilistico_com_)
    – So, now I can access the blog, I guess because there is another admin user with another fantastic super-encrypted password

    I can handle it. I just tell you for the feedback. I admire plugin writers like you because of the generous work you give to the community and I would like to help, at least beta-testing.

    Regards,

    Oscar.

    • Oscar, thank you so much for the feedback. You are absolutely right: I forgot to explicitly write down that write permissions are required.

      The thing with the admin of the new blog: Actually, the plugin uses WordPress’ own installation procedure, so that part is up to WordPress. It’s like with every fresh installation of WordPress. You are given the admin user name (“admin”) and a random password.

      Again, thank you very much for the feedback.

I have come here to chew bubblegum and kick ass...
and I'm all out of bubblegum.
-- Nada in They Live