By Arslan Ud Din Shafiq, Alibaba Cloud Tech Share Author. Tech Share is Alibaba Cloud’s incentive program to encourage the sharing of technical knowledge and best practices within the cloud community.
Vesta Control Panel is an open source software to host your websites. When you are tired of using command line for making any changes to your hosting or you want to work instantly and faster, VestaCP is best option. Most of the web hosting software are expensive. You can only afford them if you are running a web hosting selling business, otherwise, for personal use, I won’t recommend to use any paid hosting control panel software. VestaCP is available for free and is one of the best options available in the market.
VestaCP allows you to manage your websites, ftp accounts, databases, email and DNS settings. The web interface of VestaCP is developed in PHP and JS. Vesta Open API is used for CLI calls. Vesta core has been written in bash which is native programming language in Linux operating system. VestaCP does not support all operating systems. Currently, it supports RHEL, CentOS, Debian, and Ubuntu.
In this tutorial, we will be installing and configuring VestaCP on an Alibaba Cloud Elastic Compute Service (ECS) with CentOS 7 installed.
VestaCP requires a decently sized server to host and manage multiple websites. The following are the minimum requirements for installing VestaCP on your server. You are recommended to use a higher configuration whenever possible to host more websites, but you should manage your hardware requirements according to your actual usage.
- Minimum 1 core processor.
- You will need 512 MB RAM. I will recommend to use 1 GB.
- You will need 20 GB HDD hard disk. Alibaba Cloud offers HDD hard disk as well as SSD hard disk. You can use any of them as per your choice.
- You must have Alibaba Cloud Elastic Compute Service (ECS) activated and verified your valid payment method. If you are a new user, you can get a free account in your Alibaba Cloud account. If you don’t know about how to setup your ECS instance, you can refer to this tutorial or quick-start guide.
- A domain name registered from Alibaba Cloud. If you have already registered a domain from Alibaba Cloud or any other host, you can update its domain nameserver records.
- Domain name must be pointed to your Alibaba Cloud ECS’s IP address
- Access to VNC console in your Alibaba Cloud or SSH client installed in your PC
- Set up your server’s hostname and create user with root privileges.
Update Your CentOS System
Before proceeding with installation of any kind of package, use the following command to update your Ubuntu system. To execute this command, remember to login from non-root user with sudo privileges.
# yum update
There are 2 ways to install VestaCP: basic installation and advanced installation.
For basic installation follow the steps below:
- Open https://vestacp.com/install/. This link will open the installation page of VestaCP official website. Scroll down and find the heading “Install Instructions”. Execute the following commands to install VestaCP.
- For downloading installation script:
# curl -O http://vestacp.com/pub/vst-install.sh
- For installation:
# bash vst-install.sh
- You will be prompted to the following screen. Type Y and hit enter.
- Enter your email address.
- Enter your hostname (Fully Qualified Domain Name).
- Now wait for 15 minutes. VestaCP usually takes 15 minutes for installation on HDD and 5–6 minutes on SSD.
Advanced Installation Settings:
Skip this section if you have followed basic installation steps above.
For generating advanced installation commands, follow the steps below:
- Open https://vestacp.com/install/ . This link will open the installation page of VestaCP official website. Scroll down and find the heading “Advanced Install Settings”.
- Choose your preferred web settings. You can choose only one of the options below. We will be using Nginx + apache.
- Nginx + apache
- Nginx + php-fpm
- Choose your FTP settings. You can choose only one options from the list below. We will be using Vsftpd.
- Choose your Mail settings. You can choose only one options from the list below. We will be using Exim + dovecot + spamassassin + clamav.
- Exim + dovecot + spamassassin + clamav
- Exim + dovecot + spamassassin
- Exim + dovecot + clamav
- Exim + dovecot
- Choose your DNS settings. You can choose only one options from the list below. We will be using Named.
- Choose your firewall settings. You can choose only one options from the list below. We will be using iptables + fail2ban.
- iptables + fail2ban
- Choose to install Softaculous when prompted. Softaculous installer allows to you install your required CMS like WordPress, Joomla, Drupal, AbanteCart, PrestaShop, phpBB, WHMCS, MyBB, Open Real Estate, and Dolphin easily on your host.
- Choose other settings and select your database. You can either choose one database or both. We will be using both databases.
- Set your hostname.
- Setup email and password for logging in your VestaCP as admin.
- Click “Generate Install Command” and use this command to install VestaCP.
- There will be a list of commands generated for you. The following screen shows you the commands for installation of VestaCP.
# curl -O http://vestacp.com/pub/vst-install.sh # bash vst-install.sh --nginx yes --apache yes --phpfpm no --named yes --remi yes --vsftpd yes --proftpd no --iptables yes --fail2ban yes --quota yes --exim yes --dovecot yes --spamassassin yes --clamav yes --softaculous yes --mysql yes --postgresql yes --hostname imarslan --email email@example.com --password *******
Note: The password has been changed for security purposes. Please copy the code directly from your own machine.
Set Up Firewalls for HTTP and HTTPS
If you have activated firewalls, you will have to define a rule in Alibaba Cloud security group for your cloud server to add exception for port 80/TCP, 443/TCP and port 8083/TCP. You can enable these ports while creating ECS instance, but in case, if you have forgotten to unblock these ports, you can follow the procedure below. By default, these ports are blocked by the firewalls.
If you are not sure how to do this, refer to the ECS documentation.
Your VestaCP is ready to be accessed via IP address of your Alibaba Cloud ECS or domain name. As you can’t install SSL certificate to IP address, upon accessing VestaCP via IP Address, you will see the following warning. Click Advance and then click proceed.
You will be redirected to login page of VestaCP. Enter your login credentials, you will be redirected to VestaCP dashboard.
For installation of Let’s Encrypt SSL certificate, you will need to install Git to fetch Let’s Encrypt form official GitHub Repository. I will use
/opt/letsen directory for this purpose.
Execute the following command to install git.
# yum install git
Install SSL Certificate for VestaCP
To allow HTTPS access to your VestaCP, you will need to install an SSL certificate. For a free SSL certificate, I will use Let’s Encrypt SSL. Follow the steps below to install Let’s Encrypt SSL Certificate.
Execute the following command to fetch and clone Let’s Encrypt.
# git clone https://github.com/letsencrypt/letsencrypt /opt/letsen
Navigate to directory
/opt/letsen by using the following command.
# cd /opt/letsen
Before asking for issuance of SSL, you will need to stop your apache and nginx server because issuance of certificate will utilize port 80. To do so, execute the following commands.
# service nginx stop
# systemctl stop httpd
Execute the following command to install SSL certificate on your domain.
# sudo -H ./letsencrypt-auto certonly --standalone -d softpedia.xyz -d www.softpedia.xyz
Accept the terms and conditions and proceed. Upon successful installation, you will see the following screen.
Confirm or verify the installation of your SSL certificate by executing the following command.
# ./certbot-auto certificates
After successful issuance of SSL certificate, you will need to restart your nginx and apache server by using the commands below.
# service nginx start
# systemctl start httpd
Here you go! Now you can access your VestaCP using HTTPS.