How do I split a single cPanel account into multiple ones

In this article we’ll go over the basic process you would need to take if you have a single cPanel account, and you’d like to split that one account up into multiple cPanel accounts. You can only have multiple cPanel accounts on a VPS or dedicated server plan where you have access to WHM (Web Host Manager), and splitting up your domains into separate cPanel accounts can help you better organize your sites, and split up access between multiple end-users easily.

In the example below we will be taking our cPanel account userna1 which has the primary domain name set to PrimaryDomain.com and an addon domain of AddonDomain.com. We will split off the AddonDomain.com site into its own separate cPanel account so that we can give a developer full FTP and cPanel access to the site without having to worry about them being able to access anything on our PrimaryDomain.com account.

cPanel creation is no longer unlimited. Learn more about cPanel Pricing Changes and related FAQs.

If you happen to have root access to your server, you’ll probably be interested in our more advanced article on splitting a cPanel account into multiple accounts using SSH.

Both of our example sites are using WordPress so they have a MySQL database setup, they also have one e-mail account setup as well with mail in it.

  1. We want to first grab all of the content for the AddonDomain.com site via FTP. However we’ll want to actually connect via FTP using the primary site’s username, so in this case userna1. That way we can grab the mail files for that site as well.
  2. In this example we’re connected using FileZilla, with the server’s files on the right-hand side, and our local folders on the left. First we are going to right-click in the left-hand pane and select Create directory, in the pop-up to name the new directory we want to type in etc then click OK.
    filezilla-right-click-create-directory

     

     

     

  3. Again we are going to right-click in the left-hand pane and select Create directory, in the pop-up to name the new directory we want to type in mail then click OK.
  4. One last time we are going to right-click in the left-hand pane and select Create directory, in the pop-up to name the new directory we want to type in public_html then click OK.
  5. In both window panes navigate to the etc directories, then drag the server-side AddonDomain.com directory into our empty local etc one.
    filezilla-drag-etc-addondomain-directory

     

     

     

  6. In both window panes navigate to the mail directories, then drag the server-side AddonDomain.com directory into our empty local mail one.
    filezilla-drag-mail-addondomain-directory

     

     

     

  7. Now in both window panes navigate to the public_html directories, then drag the server-side AddonDomain.com directory into our empty local public_html one.
    filezilla-drag-public-html-addondomain-directory

     

     

     

  8. Now we want to also generate a backup of our MySQL database that we need for the site, in order to do this you’ll want to Login to your cPanel.
  9. Once logged in, navigate down to the Files section then click on Backup.

     

     
  10. Under the Download a MySQL Database Backup section click on the database you need to backup, in this case we’ll be downloading the userna1_wrdp2 database. You should notice you can also download any Email Forwarders or Email Filters you had setup from the section as well.

     

     

     

  11. We should now have everything we need to recreate the site under a different account. The first thing you’ll want to do is Log into WHM.
  12. In the top-left Find box type in Create, then click on Create a New Account.
    cpanel-click-on-create-new-account

     

     

     

  13. Now for the Domain: you’ll want to enter your domain with a -temp.com suffix, that way we can test and get the account up and running prior to shutting down the real site. So in our example we’re using AddonDomain-temp.com, you can then choose a username and password you’d like this new cPanel to use, and in the Choose a Package drop-down you’ll want to select the default vps package or whatever custom package you might have set up.After entering in all the information scroll to the bottom of the page and click on Create

    cpanel-enter-temp-domain

     

     

  14. Now you’ll want to connect to the new account you just created with FTP using one of your domain’s as the hostname and your new username userna2 in this case. Next navigate to the etc directory in both windows, then drag the AddonDomain.com directory from the left pane into the right.
  15. filezilla-drag-etc-addondomain-directory-local
     
  16. Next navigate to the mail directory in both windows, then drag the AddonDomain.com directory from the left pane into the right.
    filezilla-drag-mail-addondomain-directory-local

     

     
  17. Now navigate to the public_html directory in both windows, then into the AddonDomain.com directory in the left-hand pane. Still in the left-hand pane hit Ctrl-A on your keyboard to select all files, then drag those files into the right pane.
    filezilla-drag-public-html-addondomain-directory-local

     

     
  18. Now you’ll want to login to your cPanel with the new username you created.
  19. Under the Databases section click on MySQL Database Wizard.
    cpanel-click-on-database-wizard

     

     

     

  20. Enter in a database name, then click on Next Step.
    cpanel-create-a-database

     

     

     

  21. Enter in a database username and password, then click Create User.
    cpanel-create-a-database-user

     

     

     

  22. Place a check beside All Privileges, then click Next Step.
    cpanel-database-privileges

     

     

     

  23. Back at the cPanel home screen, under Databases, click on phpMyAdmin.
    cpanel-click-on-phpmyadmin

     

     
  24. From the left-hand menu, click on our userna2_wrdp1 database we created.
    phpmyadmin-click-on-userna2-wrdp1

     

     

     

  25. Click on the Import tab at the top, then click on Choose File to browse for the backup we created earlier.
    phpmyadmin-click-on-choose-file

     

     

     

  26. You should now see your selected backup filename, then click Go.
    phpmyadmin-backup-selected-click-go

     

     

     

  27. You should now notice the import was successful by the status message at the top, also our tables now display under our database in the left-hand menu.
    phpmyadmin-backup-restored

     

     

     

  28. Now because we switched cPanel usernames from userna1 to userna2 we need to update any database configuration scripts to use this new user so when we git rid of the old one it still can function on its own.Back in cPanel, under the Files section click on File Manager.
    cpanel-click-on-file-manager

     

     

     

  29. In the pop-up select Home Directory, and then click Go.
    cpanel-click-on-home-directory-and-go

     

     

     

  30. In the left-hand pane click on public_html, then in the right-hand pane right-click on wp-config.php and then click on Edit. In the Text Editor window that pops-up, click on Edit.
    file-manager-edit-wp-config

     

     

     

  31. Find the database configuration lines, which in a WordPress wp-config.php script should look like:
    /** The name of the database for WordPress */
    define('DB_NAME', 'userna1_wrdp2');
    /** MySQL database username */
    define('DB_USER', 'userna1_wrdp2');
    /** MySQL database password */
    define('DB_PASSWORD', 'wordpress2');

     

    Now update these values with your new username and database name and password if you changed it:

    /** The name of the database for WordPress */
    define('DB_NAME', 'userna2_wrdp1');/** MySQL database username */
    define('DB_USER', 'userna2_wrdp1');
    /** MySQL database password */
    define('DB_PASSWORD', 'wordpress1');

    Finally click on Save Changes.

    file-manager-edit-wp-config-save

     

     

  32. Now you’ll want to login to your original cPanel account again to remove the AddonDomain.com from the account, so that we can modify the one we created on our new account.To start this process under the Domains section click on Addon Domains.
    cpanel-click-on-addon-domains

     

     

     

  33. Beside AddonDomain.com click on Remove.
    cpanel-addon-domain-remove

     

     

    On the confirmation screen click on Remove “AddonDomain.com”.

  34. Now that the domain is removed from our userna1 cPanel account, we’ll want to log back into WHM so we can modify our userna2 account to use that domain.In the top-left Find box type in modify, then click on Modify an Account.
    whm-click-on-modify-an-account

     

     

     

  35. Click on our AddonDomain-temp.com domain, then click on Modify.
    whm-select-addon-click-modify

     

     

     

  36. Now change the domain entry in the Primary Domain: field to AddonDomain.com, then scroll to the bottom and click on Save. You should see a green Success! status display when it’s done.

That should complete the process of splitting one cPanel account into multiple ones. After you’ve got everything running under the new separate cPanel account, you can go back through the original account and remove the files in the /etc, /mail, and /public_html directories for the old addon domain. You can also go remove the original MySQL database as well now that you have a separate standalone one for your new account.

InMotion Hosting Contributor
InMotion Hosting Contributor Content Writer

InMotion Hosting contributors are highly knowledgeable individuals who create relevant content on new trends and troubleshooting techniques to help you achieve your online goals!

More Articles by InMotion Hosting

23 thoughts on “How do I split a single cPanel account into multiple ones

  1. Hi,

    I have 2 WHM accounts at 2 different hosts. (Call them WHM1 and WHM2)

    One of the domains in WHM1 whose NS’s were pointed there was moved to WHM2 and NS’s pointed there.

    Problem is the domains original acct in WHM1 was not terminated.

    At the new location, WP was installed using installitron.

    Problem:

    When I try: xxx.com i get a empty directory with only a cgi-bin folder.

    When I try: xxx.com/wp-admin i get  a 404 page.

    Others AS WELL  AS TECH SUPPORT tell me the WP loads fine?

    I have tried different browsers, and different computers at different locations with same results.

    In addition i tried https://xxx.com and was taken to 1 on 1 hosting page LOL

    I know that the domain should not be in both WHM’s and will terminate it but I am curious as to why I get the results I get and others go their fine.?

    Any ideaqs/suggestions appreciated

    Sam

    1. Hello Sam,

      It could be network caching on your system but what is the domain in question so we can troubleshoot a bit further.

      Best Regards,
      TJ Edens

  2. Thanks for the excellent tutorial. This is exactly what I’d like to do. Is there a way to follow this with zero down time? Thanks.

    1. Hello Steven,

      Thanks for the compliment and the question. As each cPanel account is directly related to an IP address even a duplicate of the server would probably not really provide a zero downtime solution. At this time, I’m not aware of any possible solution that would not require bringing the original account down.

      Regards,
      Arnel C.

  3. In the last step, after modifying the domain, I’m asked if I want to create a new package or stick with vpn. Which option should I go with? It was suggested to me to stick with vpn, however it says that it is ‘not advised’. I just want to double check. Thanks! -Des

    1. Hello Des,

      It would be easier to move all the other domains on the cPanel to another, leaving the one with the SSL on the original cPanel.

      Kindest Regards,
      Scott M

    2. Hello Des,

      If you have specific packages set up you can certainly choose one, but if not stick with the VPS package. It will not hurt anything especially if you are the only one on the server with that access.

      Kindest Regards,
      Scott M

  4. So say the domain that I want to move to have it’s own cPanel has a security certifcate installed. What would the best way to do this be then? Thanks! -Des

  5. Hi Paul,

     

    Plugins were giving a “permission” error, however when my provider turned them off I could acces the website and turn them on again.

    Very weird, I tried to set the set the FTP permission to 777 but that didn’t work.

    Anyways, thanks for your response 🙂

    1. Hello Twitch,

      Thank you for contacting us today. I checked your website, and did not see any errors.

      Are you still having trouble at this time?

      If so, please provide more details on how to view the error, such as the steps you are taking.

      Thank you,
      John-Paul

  6. Just wondering why the email address wouldn’t be compromised?  I have email addresses set up with the original cPanel, but it doesn’t feel like I’m really moving them at any point during this tutorial.  Are they being moved when I copy the contents of the “mail” folder? I can see how the mail itself is being moved that way, but not the email accounts themselves. How does that work?

    Cheers,

    Mike

    1. Hello Mike,

      When moving the etc folder, the email accounts themselves will be transferred to the new cPanel. This way there is no need to recreate them. The emails in the etc folder will also match the content in the mail folder so that each email gets the same data it had on the original cPanel.

      Kindest Regards,
      Scott M

  7. Hi John,

    That was indeed the case. Anyways, great guide!!

    Helped a lot and your quick response was certainly a plus, thanks.

    Kind regards,

  8. Hi John,

    So I have followed all the step but the website now shows an error page. Could you help me out here?

    www.*******-****.nl

    kind regards,

    Mustafa

    1. Hello Mustafa,

      Thank you for your question. I went to the website you provided, and it is not showing an error. Are you still having problems with the site at this time?

      You may have to clear your browser cache, then revisit the site.

      If you have any further questions, feel free to post them below.
      Thank you,

      -John-Paul

  9. Hi John,

    Thank you for your quick response. 

    Let me sketch the situation I’m in:

    I have a VPS for my company and at the moment I have 1 Cpanel account with all my clients in it.

    This is good for the overview but bad for limiting their bandwidth, disk usage etc.

    So what I want to do is giving each of these addon domainnames a separate Cpanel. I’m following the guide now as we speak and I’ll let you know.

    Kind regards,

    1. Hello Mustafa,

      Thank you for your question. This should not have an effect on email, unless you have dedicated/separate IP addresses assigned to the cPanel accounts. In this case, you would have to allow up to 24 hours for the IP change to propagate.

      If you have any further questions, feel free to post them below.
      Thank you,

      -John-Paul

Was this article helpful? Join the conversation!

Questions about our MailChannels Deployment? We have answers and are here to help!Learn More
+