How to Install HestiaCP (a fork of VestaCP) with Multiple PHP (Video & Text Tutorials)

Note for the following video: I had later on found that the Hostwinds VPS server settings at the datacenter prevent any changes made to the /etc/hosts file – possibally for security reasons. You can change it, but after reboot everything gets changed to its default content. Also, Debian 9 was automatically installed when I ordered the Hostwinds cloud server, so no need to reinstall.

As for the Hostwinds 53% discount, it applies to the entire hosting payment term you select. For example, if you pick the annual payment plan, then the 53% discount applies to the antire first year payment.

OK, before I write up the tutorials for how to switch from VestaCP to HestiaCP (the latter is a fork of the former), I want to list the steps for HestiaCP fresh installation (see Customization tips here). Note that the following steps were based on a real process done on a spare Linode server, which was different from what the above video shows. Now you know how to install HestiaCP/VestaCP on both Hostwinds and Linode servers.

(1) Rebuild the server with Debian 9 minimal

This is super easy to do from Linode server manager. However, before rebuilding, it is better to set Reverse DNS’s IP to your hostname in the form of (parts in bold can be anything you pick) from here at Linode server manager:

Linodes » linodexxxxxx » Remote Access

Note that has to be fully resolved to the server IP before Linode Manager allows you to set it to associate with the server IP. So for this tutorials purpose it is a real FQDN as shown in the following screenshots.

Click on Reverse DNS you will see this:

See, I tried to set it to but it did not allow me to do that because that had been not pointed to the server IP yet. Since I do have ns1. and registered as DNS records glued to the server IP, I can use directly. Later on when I set the hostname for Hestia install, I could use

Click Look up to continue, and you will see this:

Then click Yes to proceed and you will see this screen:

Now we can go back to the Linode server section to rebuild the server:

Click on the Rebuild link to proceed and you will see this:

Make sure to keep hhe root password in a handy place – you do need it for sure!

After rebuilding, the server needs a reboot and you can proceed to SSH login in the next step.

(2) Server Login via SSH

Now, it is better to secure a key login to SSH for security reasons and also for easy future access. Do this…

ssh-copy-id root@123.456.78.910 (make sure you use your server’s real IP)

Note: the above command is based on the fact that you have already generated and stored a pair of cryptographic keys on your local computer.

You may receive a warning at this step because it is a freshly rebuilt server and it has not any key on it. So just ignore the warning and follow the screen prompts for whatever things you need to do and then run the ssh-copy-id root@123.456.78.910 command again. This time you will be asked to enter the root password to continue.

If everything is alright, then you should be able to login without entering the root password using this command:

(3) Make Sure Hostname Is Set Permanently

Hostname can be set in the next step in VestiaCP’s custom installation command. But it does not hurt to set it now. Edit the hostname file using this command:

The default is localhost and so just replace it with your FQDN hostname, e.g.

Then edit this file /etc/hosts:

Add your server IP and hostname to the file so that the first two lines are like this:

After saving and exiting the nano editor, type the following commands one by one to confirm that the hostname changes are correct (sentence in brackets explains what you will see after issuing each command):

Make sure the Debian 9 minimal install is up to date (optional):

Reboot the remote server from the Linode server manager and check the hostname command returns the correct hostname after reboot. This is to make sure that even after the server crashes, it still retains the correct hostname.

It is better to confirm your hostname domain has resolved to the server IP. It involves registering its domain name and setting its proper DNS server entries. If you plan to host more than one domain on the server and you do not want to use the DNS settings given by the data center, then you need to set up a pair of private/custom DNS glue records at your domain registrar and make sure all domains to be added later on use the same sets of nameservers.

Note that does not have to be resolved to the server IP at the moment. You will need to set its DNS records from within the HestiaCP later on and then it will start the resolving process.

(4) Install Hestia with Multiple PHP Version Selector

Login again as root – you should know the command as it has been given in step (2).

Download the Hestia installation file:

Use this one line command for a quick install with the multiple PHP version selector option (HestiaCP does not recommend using this option for a production server at the moment):

You should see this:

Enter “y” to proceed and let the script run by itself. If your hostname domain has resolved to your server IP, then you can access the Hestia control panel from here right away:

As always and as in the case of Hestia/Vesta fresh install, you can access it from this IP-based URL (use your server’s real IP of course):


After login as admin, you will see this:

This means you have successfully installed HestiaCP!

OK, one more screenshot needed when you click on the WEB section and select to edit the default domain…

This shows the multi PHP selector is there for any particular domain you want to set for.


One comment

Leave a Reply