One place for hosting & domains

      How to Migrate a CPanel Server to Linode

      Updated by Linode

      Written by Nathan Melehan

      Use promo code DOCS10 for $10 credit on a new account.

      This guide describes how to migrate from a server running WHM and CPanel on another hosting service to Linode. This transfer is completed using CPanel’s official Transfer Tool. Prior to using the Transfer Tool, you will complete a basic WHM installation on a new Linode. Read the Best Practices when Migrating to Linode guide for more information about migrating your sites before beginning.


      The Transfer Tool only transfers your CPanel accounts, and not your WHM settings. You will need to recreate your WHM settings on your new Linode separately.

      This guide does not cover how to handle CPanel deployments that are part of a DNS cluster. For guidance on migrating a CPanel server in a DNS cluster, see CPanel’s official documentation.

      Migrate Your CPanel Accounts

      Deploy Your Linode

      1. Follow Linode’s Getting Started guide and choose CentOS 7 as your Linux image. Choose a Linode plan with enough storage capacity to accommodate the data within the CPanel accounts on your current host.

      2. Use the How to Secure Your Server guide to create a limited Linux user with sudo privileges.

      3. Stand up a new WHM/CPanel installation by following the Install CPanel on Linode guide. Use the Linode’s generic domain name for WHM’s Hostname setting. This generic domain will be listed under the Remote Access tab for your Linode in the Linode Manager, and it will have the form


        You will set the Hostname to be your actual domain name later on in this guide. If you set the Hostname setting as your domain name now, the WHM and CPanel dashboards on your new Linode will redirect to your current host, and you will not be able to access the settings for your new Linode.

      Use the CPanel Transfer Tool

      1. Visit http://your_linode_ip_address:2087 in your web browser to load the WHM dashboard. Bypass the browser warning message about the web server’s SSL/TLS certificate.

      2. Log in to WHM with the root user and password for your Linode.

        WHM Login Page

      3. In the menu on the left side of the WHM dashboard, scroll down to the Transfers section and choose the Transfer Tool option:

        WHM Dashboard Transfer Tool Menu Option

      4. In the Remote Server Address field, enter your current host’s IP address:

        WHM Transfer Tool Remote Server Information Form

      5. Enter the root credentials for your current host under the Authentication section. You will need the root password for your current host and root logins should be allowed on that host.

        If you don’t have root credentials or if root logins are not allowed, you will need the credentials of another user with sudo privileges on your current host. Enter that username and password and choose sudo for the Root Escalation Method field.

        WHM Transfer Tool Authentication Form

      6. Click the Fetch Account List button at the bottom of the form.

      7. A new page will load with forms listing the Service Configurations, Packages, and Accounts from your current host. Click the corresponding checkbox for each item in these sections to enable their transfer. Click the Show button for the Service Configurations section to see the options in that area:

        WHM Transfer Tool Service Configurations Form

      8. When all of the options are selected, click the Copy button at the bottom of the page. A new page will appear showing the progress of your transfer:

        WHM Transfer Tool Progress Information

      Verify Transferred Accounts

      You should verify that all information from your CPanel accounts was transferred successfully to your Linode. To do this, you will log in to CPanel on your new Linode for each account that was transferred and review the contents of the dashboard. The specific information in the following sections should also be reviewed for each account.

      Verify IP Address Assignments

      The Transfer Tool will attempt to assign your new Linode IP to the transferred CPanel accounts. It will sometimes fail and leave your old host’s IP in place, so you should confirm which IP is assigned to your CPanel accounts:

      1. In the menu on the left side of the WHM dashboard, navigate to the Account Information section and choose the List Accounts option:

        WHM List Accounts

      2. Verify that your new Linode’s IP is listed for the accounts. If it is not listed, use the CPanel IP Migration Wizard tool to update your account configurations with the new IP.

      Verify SSL Certificates

      The official CPanel migration documentation notes that SSL certificates (apart from the self-signed certificates that CPanel provides) need to be manually downloaded from the source CPanel server and then installed on the new Linode.

      When writing this guide it was found that the SSL certificates from the test source server were transferred automatically. It’s recommended that you verify that your SSL certificates are present on the new server, and that you backup the certificate files from the source server.

      1. The SSL certificates on your current CPanel host are located in /etc/ssl. Download them to your computer:

        scp -r root@current_host_ip_address:/etc/ssl ~

        You can also use FileZilla to download the files.

        If you are not able to login as root to your host, login as a user with sudo privileges and then copy those files to the user’s home folder:

        ssh your_sudo_user@current_host_ip_address
        sudo cp -r /etc/ssl ~
        sudo chown $(whoami):$(whoami) ssl

        Then download the files from the user’s home folder to your computer:

        scp -r root@current_host_ip_address:~/ssl ~

        After downloading the files, log back into your host and remove the files from the sudo user’s home folder:

        rm -r ~/ssl
      2. If you do not have terminal access to your current host, you can also copy the certificates from the CPanel interface. Load CPanel on your current host by visiting http://your_current_host_ip_address:2083 in your web browser and enter your CPanel account credentials.

        CPanel Login Page

        Visit the SSL/TLS section and view the private keys, certificate signing requests, and certificates listed. Copy and paste each of these to text files on your computer. Repeat this for each CPanel account on your current host.

        CPanel SSL/TLS Page

      3. Visit http://your_linode_ip_address:2083 in your web browser to load the CPanel dashboard on your Linode. Bypass the browser warning message about the web server’s SSL/TLS certificate.

      4. When presented with the CPanel Login form, enter the credentials you use for your CPanel account on your current host. These credentials were transferred by the Transfer Tool and are the same as before.

      5. Visit the SSL/TLS section and review the private keys and certificates sections. If you do not see your private keys and certificates, use the Upload a New Private Key and Upload a New Certificate forms to add them.

      6. Visit the SSL/TLS section again and navigate to the Install and Manage SSL for your site (HTTPS) page. Click the Certificate Details link to view which certificate is installed for your site.

        CPanel SSL/TLS Manage SSL Certificates Certificate Details

      7. If your certificate is not being used, click the Browse Certificates button and choose your certificate from the dialog that appears. After choosing your certificate, click the Install Certificate button at the bottom of the page.

      8. Repeat steps 4-8 for each transferred CPanel account.

      Test Your New CPanel Deployment

      If you visit your Linode’s IP address in your browser, the website served by your CPanel account will not appear. This is because the CPanel server expects your domain name to be passed in your web request, and you have not updated your DNS yet.

      The Previewing Websites Without DNS guide describes a way to visit your domain prior to updating your DNS records. When you have updated your DNS, this workaround will no longer be necessary to view your site.

      Migrating DNS Records

      After completing the CPanel migration, update your DNS records to reflect your new Linode’s IP. Once this is done, site visitors will start loading your CPanel accounts’ services from your new Linode.

      (Optional) Prepare Your Domain Name to Move

      A recommended first step is to lower the Time to Live (TTL) setting for your domain so that the migration won’t have a negative impact on your site’s visitors. TTL tells DNS caching servers how long to save information about your domain. Because DNS addresses don’t often change server IP addresses, default TTL is typically about 24 hours.

      When changing servers, however, make the TTL shorter to make sure that when you update your domain information, it takes effect quickly. Otherwise, your domain could resolve to your old server’s IP address for up to 24 hours.

      1. Locate your current nameservers. If you’re not sure what your nameservers are, use a Whois Search tool. You will see several nameservers listed, probably all at the same company. nameservers

        You can usually derive the website of your nameserver authority (the organization that manages your DNS) from the nameservers you find in the Whois report (e.g. corresponds with Sometimes the labeling for the nameservers is not directly related to the organization’s website, and in those cases you can often find the website by plugging the nameserver into a Google search.

      2. Contact your nameserver authority for details on how to shorten the TTL for your domain. Every provider is a little different, so you may have to ask for instructions.

        Updating TTL at common nameserver authorities

        Most nameserver authorities will allow you to set the TTL on your domain or on individual records, but some do not allow this setting to be edited. Here are support documents from some common authorities that mention how they manage TTL:

      3. Make a note of your current TTL. It will be listed in seconds, so you need to divide by 3600 to get the number of hours (e.g. 86,400 seconds = 24 hours). This is the amount of time that you need to wait between now and when you actually move your domain.

      4. Adjust your TTL to its shortest setting. For example, 300 seconds is equal to 5 minutes, so that’s a good choice if it’s available.

      5. Wait out the original TTL from Step 3 before actually moving your domain–otherwise, DNS caching servers will not know of the new, lower TTL yet. For more information on domain TTL, see our DNS guide.

      Use Linode’s Nameservers

      1. Follow Linode’s instructions on adding a domain zone to create DNS records at Linode for your domain. Recreate the DNS records listed in your current nameserver authority’s website, but change the IP addresses to reflect your Linode IPs where appropriate.

      2. Locate your domain’s registrar, which is the company you purchased your domain from. If you’re not sure who your registrar is, you can find out with a Whois Search tool. nameservers

        Your registrar may not be the same organization as your current nameserver authority, though they often are, as registrars generally offer free DNS services.

      3. Log in to your domain registrar’s control panel and update the authoritative nameservers to be Linode’s nameservers:


        Updating authoritative nameservers at common registrars

        The following support documents describe how to update the authoritative nameservers of common registrars:

      4. Wait the amount of time you set for your TTL for the domain to propagate. If you did not shorten your TTL, this may take up to 48 hours.

      5. Navigate to your domain in a web browser. It should now show the website from Linode, rather than your old host. If you can’t tell the difference, use the DIG utility. It should show the IP address for your Linode.

      6. Set reverse DNS for your domain. This is especially important if you are running a mail server.


        If you’re having trouble seeing your site at the new IP address, try visiting it in a different browser or in a private browsing session. Sometimes your browser will cache old DNS data, even if it has updated everywhere else.

      Update WHM Hostname

      After your DNS changes have propagated, update WHM’s hostname to be your domain. In the menu on the left side of the WHM dashboard, navigate to the Networking Setup section and choose the Change Hostname option. Enter the new hostname in the form that appears and click the Change button:

      CPanel Change Hostname page

      Transfer CPanel License

      If you purchased your license directly from CPanel, update your license to feature your new Linode’s IP address. If you purchased your license through your previous host, then you will need to purchase a new license from CPanel for your Linode deployment. As an alternative to purchasing from CPanel, a free CPanel subscription is included for each of your Linodes if you are a Linode Managed subscriber.

      More Information

      You may wish to consult the following resources for additional information on this topic. While these are provided in the hope that they will be useful, please note that we cannot vouch for the accuracy or timeliness of externally hosted materials.

      Join our Community

      Find answers, ask questions, and help others.

      This guide is published under a CC BY-ND 4.0 license.

      Source link

      How To Install Git on Debian 9


      Software version control systems enable you to keep track of your software at the source level. With versioning tools, you can track changes, revert to previous stages, and branch to create alternate versions of files and directories.

      Git is one of the most popular version control systems currently available. Many projects’ files are maintained in a Git repository, and sites like GitHub, GitLab, and Bitbucket help to facilitate software development project sharing and collaboration.

      In this tutorial, we’ll install and configure Git on a Debian 9 server. We will cover how to install the software in two different ways, each of which have their own benefits depending on your specific needs.


      In order to complete this tutorial, you should have a non-root user with sudo privileges on an Debian 9 server. To learn how to achieve this setup, follow our Debian 9 initial server setup guide.

      With your server and user set up, you are ready to begin.

      Installing Git with Default Packages

      Debian’s default repositories provide you with a fast method to install Git. Note that the version you install via these repositories may be older than the newest version currently available. If you need the latest release, consider moving to the next section of this tutorial to learn how to install and compile Git from source.

      First, use the apt package management tools to update your local package index. With the update complete, you can download and install Git:

      • sudo apt update
      • sudo apt install git

      You can confirm that you have installed Git correctly by running the following command:


      git version 2.11.0

      With Git successfully installed, you can now move on to the Setting Up Git section of this tutorial to complete your setup.

      Installing Git from Source

      A more flexible method of installing Git is to compile the software from source. This takes longer and will not be maintained through your package manager, but it will allow you to download the latest release and will give you some control over the options you include if you wish to customize.

      Before you begin, you need to install the software that Git depends on. This is all available in the default repositories, so we can update our local package index and then install the packages.

      • sudo apt update
      • sudo apt install make libssl-dev libghc-zlib-dev libcurl4-gnutls-dev libexpat1-dev gettext unzip

      After you have installed the necessary dependencies, you can go ahead and get the version of Git you want by visiting the Git project’s mirror on GitHub, available via the following URL:

      From here, be sure that you are on the master branch. Click on the Tags link and select your desired Git version. Unless you have a reason for downloading a release candidate (marked as rc) version, try to avoid these as they may be unstable.

      git change branch select tags

      Next, on the right side of the page, click on the Clone or download button, then right-click on Download ZIP and copy the link address that ends in .zip.

      right-click on download zip to copy url

      Back on your Debian 9 server, move into the tmp directory to download temporary files.

      From there, you can use the wget command to install the copied zip file link. We’ll specify a new name for the file:

      • wget -O

      Unzip the file that you downloaded and move into the resulting directory by typing:

      Now, you can make the package and install it by typing these two commands:

      • make prefix=/usr/local all
      • sudo make prefix=/usr/local install

      To ensure that the install was successful, you can type git --version and you should receive relevant output that specifies the current installed version of Git.

      Now that you have Git installed, if you want to upgrade to a later version, you can clone the repository, and then build and install. To find the URL to use for the clone operation, navigate to the branch or tag that you want on the project's GitHub page and then copy the clone URL on the right side:

      git copy URL

      At the time of writing, the relevant URL is:

      Change to your home directory, and use git clone on the URL you just copied:

      • cd ~
      • git clone

      This will create a new directory within your current directory where you can rebuild the package and reinstall the newer version, just like you did above. This will overwrite your older version with the new version:

      • cd git
      • make prefix=/usr/local all
      • sudo make prefix=/usr/local install

      With this complete, you can be sure that your version of Git is up to date.

      Setting Up Git

      Now that you have Git installed, you should configure it so that the generated commit messages will contain your correct information.

      This can be achieved by using the git config command. Specifically, we need to provide our name and email address because Git embeds this information into each commit we do. We can go ahead and add this information by typing:

      • git config --global "Sammy"
      • git config --global ""

      We can see all of the configuration items that have been set by typing:

      Output ...

      The information you enter is stored in your Git configuration file, which you can optionally edit by hand with a text editor like this:

      ~/.gitconfig contents

        name = Sammy
        email =

      There are many other options that you can set, but these are the two essential ones needed. If you skip this step, you’ll likely see warnings when you commit to Git. This makes more work for you because you will then have to revise the commits you have done with the corrected information.


      You should now have Git installed and ready to use on your system.

      To learn more about how to use Git, check out these articles and series:

      Source link

      What makes a good WordPress theme for small business?

      WordPress is the most popular website building platform on the internet, powering just under a third of all the sites on the web, and is used by business of all sizes in all sectors around the world. It is used for practically every kind of business website, and is a top choice for entrepreneurs and startups, as well as major companies and global brands like TechCrunch, Sony Music, Mercedes-Benz, and shoe company Bata.

      WordPress sites are generally built with Themes, which WordPress documentation describe as “a collection of files that work together to produce a graphical interface with an underlying unifying design for a weblog.” The files are that make up the Theme are called “Templates,” and they allow the appearance and functionality of the website to be changed without making any alterations to the underlying code.

      Once a business has decided to use WordPress, choosing a Theme is the next step, as it establishes the basic layout, design and style of the site. Choosing a Theme is hardly a simple matter, however, of finding one that provides an attractive, professional looking sample.

      Universal needs

      Every business needs a website that looks good and works properly. For a Theme to deliver both characteristics, it has to have both high-quality design and coding. A website that has poorly written code in the back-end may look nice, but fail to function properly or break down as you attempt to customize it. A website with well-written code and a nice-looking sample page but lacklustre design may not look the way you want when you are finished customizing it.

      An important element of both functionality and professional, on-brand appearance is responsiveness, which refers to how the site shows up on different devices. Many websites are built on a desktop computer, but fail to resize properly for mobile devices. It is also not safe to take the word of a Theme’s marketing material that it is completely responsive. Check any user comments available to see if there are complaints about the way it looks on tablets or other devices, and once you have selected a Theme, test its responsiveness thoroughly to avoid losing all the customers the page won’t load properly for. If it is not convenient to test the page on a variety of devices, Google offers a responsiveness testing tool so you can still be certain your site will look and work the way you want it to, regardless of what kind of device your site visitors are viewing it on.

      Most businesses will want a Theme that allows them to customize their WordPress website with a drag and drop interface. This enables you to customize the website without the coding skills of a programmer. If you are motivated to perform more complex customization, look for a Theme that offers shortcodes, which are small code samples that are meant to be cut and pasted into the site.

      Another common need that some Themes fail to meet is a full range of colors and fonts. Even if you don’t have a specific color scheme or style of text in mind, the limitations imposed by Themes with only a few options is likely to force you to make unnecessary compromises on site appearance, preventing the business from being shown in its best possible light.

      Beyond these basic criteria for a good WordPress Theme, there are some considerations specific to the kind of website your business needs.

      Retail Site

      Ecommerce functionality is obviously important for any retail site, but the quality of the catalog is even more crucial – if your products or services are hard to find, displayed poorly, or difficult to update and manage, your customers are unlikely to reach the purchasing stage.

      There are several popular catalog plugins for WordPress, such as Posts Table Pro, WooCommerce Product Table, WP Catalogue, Product Catalog, and WordPress Catalog. They mostly share similar basic features but have different strengths in terms of functionality. Whichever plugin you choose, make sure it is easy to update, otherwise keeping your site aligned with your actual inventory will be a constant headache.

      An important thing to keep in mind when choosing a Theme is that not all Themes will be compatible with every plugin, so determining what catalog plugins a Theme supports is a major part of evaluating it for an ecommerce site.

      The plugin that manages transactions is also important. Not only does it need to accept payments in the right form for your customers, it needs to meet increasingly high standards of security and usability. Research by ecommerce tools provider Barilliance indicates that 15 percent of incidents of online shopping cart abandonment are caused by security concerns, and 9 percent by a long and confusing checkout process.


      For a media business’ website to be effective, it has to be able to deliver its media files on demand without errors or lag. This makes plugin compatibility a key determining factor in which Theme to select, in order to deliver your content the way you want to.

      Performance is important for all sites, but particularly critical for all media sites, as the relatively large amounts of data that must be transmitted from the site to the visitor can easily be bogged down. A lightweight Theme – meaning one that with “clean” code, in which every line that must be processed is doing work essential to delivering the website.  This is one of the main differences between more costly “premium” Themes and most inexpensive or free options – professional programmers tend to write cleaner code than enthusiastic amateurs, making their Themes “light” and fast.


      Community websites that use a paywall or otherwise restrict access to certain content or areas generally rely on plugins like MemberPress, Restrict Content Pro, or Paid Member Subscriptions.

      Sites with community forums use a plugin like bbPress or BuddyPress to set up and manage them. There are many Themes that come with one of those or a similar option integrated, which helps keep things simple.

      Depending on the specifics of your business, you may also want your membership or community website Theme to also come with capabilities like a user rating system and email list integration.

      Whatever kind of business you are thinking of running your WordPress site on, there are good Themes out there for you to choose from. Once you have decided what plugins you need to meet your business’ needs, and considered the other characteristics or features you need from your theme, or even for help figuring those things out, give us a call, and we’ll get you started.

      Source link