Questions? Feedback? powered by Olark live chat software
Author Avatar

How to Install Fast & Free Vesta Control Panel

Written by: on 18 October 2017 09:28 AM 18 October 2017 09:28 AM

Complete tutorials about installing & using free control panel on a VPS. Do it yourself by following VPSBlocks.

cPanel is great as a complete hosting package. But if you don't need features like a web based file manager, VestaCP is a free control panel that offers speeds far surpassing that provided by cPanel. It's fantastic for hosting CMS based websites such as Magento, Joomla, Wordpress, Drupal etc.

Check out our sample Magento website running on a basic 1 CPU Core, 512MB Ram Linux Ubuntu 14 server at

Note: If you are not confident in following these instructions we offer this installation as an optional service to our customers during the ordering process. We recommend you choose Ubuntu 14 as your operating system, and during the order process will be asked if you would like the Vesta Initial Setup, the cost is only $20.


Start with a VPS, for Vesta we recommend Ubuntu 16 or Ubuntu 14

SSH into your new VPS

Type: curl -O

Type: bash

Important note: If asked for a hostname you must put the name you gave your server e.g. If you do not put the same name services will not be able to resolve the hostname to your local VPS and it will cause issues with NGinx and some other services.

To start the installation press: y

Enter your email address

The installation will complete and at the end display your login credentials

Now run: update-rc.d mysql disable
*Note: This is an Ubuntu 14 oddity, as otherwise two mysql processes will be started upon startup. 

Disable AppArmor for Bind9 (named) so DNS serving will function properly

AppArmor by default prevents Bind9 from reading it's own database files under /home/<user>/ location. So you need to run these commands:

ln -s /etc/apparmor.d/usr.sbin.named /etc/apparmor.d/disable/

apparmor_parser -R /etc/apparmor.d/usr.sbin.named

service bind9 restart


Visit https://YOURIP:8083 in your browser

Login using the credentials supplied to you



We recommend turning on autoupdate

On the top bar, click on 'Updates' and click on [ enable autoupdate ]



By default the 'Admin' user exists. You can create another user in the 'USER' section. Ensure any passwords you enter are very secure, particularly if you enable SSH access for any users you create. For each user you create, as well as the admin user you can also set default name servers. If you are using your own name servers enter them by editing the user, if you are using our provided name servers, enter them ( /



Click on 'WEB'

Click on 'edit' next to the default domain

Here you should set the default settings for the webserver. For best performance we recommend you turn on Nginx Support and set the Nginx Template to default then click 'Save'

Note: Leave the Apache Template as default. If you want to set it to php-fcgi for extra performance you must have more than 1G of RAM, but you need to modify a file manually in SSH.

Edit /etc/apache2/mods-available/fcgid.conf (Ubuntu) (/etc/httpd/conf.d/fcgid.conf on CentOS):

<IfModule mod_fcgid.c>
  AddHandler    fcgid-script .fcgi
  FcgidConnectTimeout 20
  FcgidMinProcessesPerClass 0
  FcgidMaxProcessesPerClass 10
  FcgidMaxProcesses 50
  FcgidIdleTimeout 60
  FcgidProcessLifeTime 120
  FcgidIdleScanInterval 30

  # Change the rate at which new FastCGI processes are spawned under load. Higher=faster
  FcgidSpawnScoreUpLimit 10

  # Higher number = spawning more FastCGI processes decreases the spawn rate (controls runaway
  FcgidSpawnScore 2

  # Higher number = terminating FastCGI processes decreases the spawn rate (controls runaway)
  FcgidTerminationScore 2

  # Increase the FastCGI max request length for large file uploads (needed for some sites)
  FcgidMaxRequestLen 1073741824

  FcgidMaxRequestsPerProcess 100000
  FcgidIOTimeout 1800


You cannot edit the name for this website. This is the website that will always appear when you visit the IP address directly or any domains listed in the 'Aliases' section.

If you are hosting a single or main website you can use the default website, and enter the domain names in aliases. Note by doing this that you will have to add MAIL manually for the domain.

Alternatively, click on 'WEB' again and this time choose 'Add Web Domain' and add your new website.



To enable self-signed SSL on your default website so things like webmail are accessed via SSL you need to do the following.

Click on 'WEB'

Click on 'edit' next to the default domain

Check the box next to 'SSL Support'

Click on 'Generate CSR' (this opens in a new browser window/tab)

Fill out the details, and change the Domain to a domain name that resolves to the server

Then copy and and paste each of the details into the editing domain section. Note that they are not in the same order, so ensure you copy the certificate and key correctly. THe SSL Certificate Authority would be blank.

Click 'Save'

You will get warnings due to this being a self-signed certificate, but logging in via webmail will be secured.



When you add a website the DNS records are automatically created for it. However, it's up to you whether you want to create your own DNS servers ( and use Vesta to manage your DNS records, or use our provided DNS servers ( and enter the DNS records yourself in our control panel.

If you setup your own DNS servers, you can edit/add any DNS records in the DNS section. Note that if you do not setup your own DNS servers then anything you do in this section will not be public or have any impact in the rest of the internet - e.g. you should make changes you need in our provided control panel.



To setup mail for your domain you will need to go the MAIL section. Here you can add/edit domains that you host mail for, and also add/remove mail accounts, open webmail and more.

If you've used the default website as your website, you will need to click on 'Add Mail Domain' and add your domain

Then click 'Add account' to add email accounts



Providing you have followed the instructions on enabling the self-signed SSL, Webmail can be accessed at any time at https://YOURIP/webmail/ or https://YOURDOMAIN/webmail/

If you have not then you can only access at http://YOURIP/webmail/ or http://YOURDOMAIN/webmail/



If you are installing a CMS such as Magento, Joomla, Wordpress, Prestashop etc. you will need a database.

First click on 'DB'

Then click on 'Add Database'

Here fill out the name of your database, note that the user you are currently logged in with will be prefixed to your MySQL database and MySQL username.



You can FTP into the server using SFP or SCP as your admin user.

When you login you will see four folders. Browse into the web folder, there you will see a folder for each site under your username. Under that the public_html folder is your web root folder.

Click 'Save'



First download the full version of Magento, and extract it on your local machine.

Then FTP into the server and upload all the files into the public_html directory.

Then delete the file index.html

Then browse to http://YOURSITE/index.php

Follow the steps to install Magento


UPDATING YOUR SERVER (Debian and Ubuntu)

You're nearly complete, but now you need to ensure your server is running the latest version of everything that's just been installed. To do that first SSH into your server, then type:

apt-get update
apt-get upgrade

Answer yes to any questions posed. 



If you are running on a VPS and only have 512MB of RAM, you may need to perform some tweaks, we recommend that you:

  • SSH into your VPS
  • Type: nano /etc/mysql/my.cnf
  • Modify the file to look like this:


performance_schema             = off


tmp-table-size                 = 32M
max-heap-table-size            = 32M
query-cache-type               = 0
query-cache-size               = 0
max-connections                = 500
thread-cache-size              = 50
open-files-limit               = 65535
table-definition-cache         = 1024
table-open-cache               = 2048

innodb-flush-method            = O_DIRECT
innodb-log-files-in-group      = 2
innodb-flush-log-at-trx-commit = 1
innodb-file-per-table          = 1
innodb-buffer-pool-size        = 128M




(12 vote(s))
Not helpful