How MyBB Actually Handles Multiple Sites

MyBB is built as a single-forum application. There is no network mode, no shared user table across boards, and no central dashboard that governs several forums at once the way some platforms offer. Each MyBB installation expects to own one set of files, one configuration file, and one database schema. If you want to run two, three, or a dozen forums, you deploy that same number of fully independent copies of MyBB, each pointing at its own database.

This is the only model MyBB supports, and attempting to bolt a multi-site layer on top of it usually ends in corrupted sessions and cross-contaminated settings. The forum identity lives in two places: the inc/config.php file, which stores database credentials, the table prefix, and cookie settings, and the settings table inside the database, which holds the board URL, name, and hundreds of operational options. When those two sources disagree, logins break and admin links point to the wrong host.

On a shared hosting account you have everything needed to run several isolated instances. Each MyBB copy sits in its own directory, served through a subdomain or addon domain, and reads from a separate MySQL database you create in cPanel or DirectAdmin. The isolation is physical rather than logical, which is actually the safer arrangement: a plugin that misbehaves on one board, or a theme edit that breaks a template, stays contained to that single instance and cannot touch the others.

The practical decision is how to expose each forum. Three layouts cover nearly every need: a dedicated subdomain such as support.example.com, an addon domain with its own domain name entirely, or a subfolder of the main domain like example.com/forum2/. Subdomains are the cleanest for separate communities because they get their own document root and keep cookie scopes distinct, which matters a great deal for MyBB session handling.

Creating Isolated Instances with Subdomains and Databases

Start by giving each forum its own home on disk. In cPanel Jupiter, open Domains and click Create A New Domain to add a subdomain such as community.example.com. cPanel will offer a document root; accept a clear path like /home/USER/community.example.com so the files never overlap with your primary site in public_html. In DirectAdmin Evolution, the equivalent is Account Manager → Domain Setup for addon domains, or Account Manager → Subdomain Management for subdomains, which creates a folder under public_html/community/.

Each instance needs a distinct database. In cPanel open MySQL® Databases, create a database such as user_mybb2, create a dedicated user such as user_mybb2u with a strong password, then add that user to the database with ALL PRIVILEGES. DirectAdmin users do the same under Account Manager → MySQL Management → Create new Database, which creates the database and user together. Never point two forums at the same database unless you deliberately change the table prefix, and even then it invites confusion, so keep one database per board.

Upload the MyBB files into the new document root. Using cPanel File Manager, navigate to the subdomain folder, upload the MyBB zip, extract it, and move the contents of the Upload folder up into the document root so that index.php sits at the top level. Then browse to https://community.example.com/install/ and complete the web installer, entering the database name, user, and password you just created. On the configuration step, set a unique Table Prefix per instance (for example mybb2_) even though the databases are separate. This habit keeps your phpMyAdmin view readable if you ever export tables side by side.

After installation finishes, delete the install/ directory through File Manager, and set inc/config.php to permission 0644 or stricter. If you run several PHP versions, confirm the subdomain uses a supported one in cPanel MultiPHP Manager or DirectAdmin's PHP selector; recent MyBB releases prefer PHP 8.1 or 8.2. A mismatched PHP version is a common reason a second instance throws a blank page while the first one runs fine.

The setting that trips up operators of multiple MyBB boards is the cookie domain. When several forums share a parent domain, their cookies can collide, logging a visitor out of one board when they sign into another. Each instance must declare its own cookie scope. Log into each forum's AdminCP, go to Configuration → Site Details, and verify the Website URL matches the exact host, including https://. Then open Configuration → Cookies and Sessions and set the Cookie Domain to that specific subdomain, for example community.example.com, and give the Cookie Path a value of /. If two boards live in subfolders of one domain, keep the cookie domain blank and instead differentiate them by cookie path such as /forum1/ and /forum2/.

Because each document root is separate, each instance also gets its own .htaccess. MyBB ships a sample as .htaccess.txt; rename it per instance when you enable search-friendly URLs under Configuration → Settings → Search Engine Friendly URLs. A minimal rewrite block for an instance running in its own subdomain root looks like this:

Options -MultiViews +FollowSymLinks
RewriteEngine On

RewriteRule ^forum-([0-9]+)\.html$ forumdisplay.php?fid=$1 [L,QSA]
RewriteRule ^thread-([0-9]+)\.html$ showthread.php?tid=$1 [L,QSA]
RewriteRule ^thread-([0-9]+)-lastpost\.html$ showthread.php?tid=$1&action=lastpost [L,QSA]
RewriteRule ^user-([0-9]+)\.html$ member.php?action=profile&uid=$1 [L,QSA]

When a forum lives in a subfolder, add a RewriteBase line so rewrites resolve against the correct path. A board at example.com/forum2/ needs RewriteBase /forum2/ near the top of its own .htaccess, which prevents its rules from leaking up into the parent document root. Keep each file physically inside its own directory; never try to manage two forums from a single shared .htaccess at the account root.

Per-instance PHP limits belong in a .user.ini placed in each document root. A busy board that handles large attachment uploads might need higher values than a quiet one, and isolating them avoids overprovisioning every forum:

upload_max_filesize = 32M
post_max_size = 40M
memory_limit = 256M
max_execution_time = 120

Changes to .user.ini take effect after the file-cache TTL expires, usually within five minutes on LiteSpeed. If a second instance refuses to accept new limits, confirm you edited the file in that forum's folder and not the primary site's.

Maintaining and Troubleshooting Separate Boards

With several instances live, treat each one as a standalone application for backups and diagnostics. Export each database individually in phpMyAdmin by selecting only that board's database, choosing Export → Custom, and saving a dated SQL file. Pair that with a File Manager archive of the matching document root. Restoring one forum then never risks overwriting another. If you clone an existing board to spin up a new one, after importing the SQL, update inc/config.php with the new database credentials and run an UPDATE on the settings table through phpMyAdmin to correct bburl, cookiedomain, and cookiepath, otherwise the clone will redirect to the original host.

When one instance misbehaves, read its own log. MyBB errors land in the account's PHP error_log, which appears inside the document root of the affected forum, so a fatal error on the support board will not hide inside the main site's log. Check the AdminCP Tools & Maintenance → System Health → PHP Info page to confirm the running PHP version and loaded extensions match what that forum expects. The approach to safe updates, staging copies, and rollback used for other forum software applies here too; see our guidance on safe upgrades and backups with staging and rollback for a workflow you can adapt per MyBB instance. Upgrade boards one at a time, test the upgraded copy before touching the next, and keep the pre-upgrade database export until you confirm the board is stable.