How To Set Up A CentOS VPS (& Move From Shared Hosting)

how to set up vps

In this tutorial I am going to show you how to set up a CentOS VPS and migrate your site from shared hosting, even if you have no experience with servers.

The traditional $3/mo shared hosting model is for beginners. When your traffic starts to pick up, you will be forced to upgrade to a more expensive plan. At that point you should consider moving to a VPS as an alternative. Even if you feel that you are not up to the task.

If you can handle cPanel and WordPress, then you are able to run your own VPS. Even if you have never seen a server before.

I had no idea about servers when I originally switched over to VPS. I learned it bit by bit, worked out solutions for all the different problems and compiled these into this tutorial. Now it is a fully tested system – I have been using it to host my own sites for the past year.

There is a DIY and a Done-for-You route. Both are very affordable.

  • A VPS usually costs $20-40/month and cPanel costs an additional $15.
  • Siteground charges you $35-40/mo on its premium shared hosting plan after your initial discount expires.

That’s a lot of money for a small business or blog.

I believe that every single website that is important to its owner deserves its own server at a reasonable price.

You can get started with your first VPS hosting for as low as $60/year (=$5/mo) and a premium control panel for $11/year. That’s a lot of savings, without the constraints of shared hosting.

Selecting Your VPS Hosting Company

There are two types of VPS. A managed VPS is and unmanaged.

In Managed VPS Hosting, your service provider takes care of server maintenance like updating the core, software installation, backup, security and more.

With unmanaged VPS hosting, the hosting provider is only responsible for the physical server and the availability of the server. This means that with the exception of the initial OS installation, the user is responsible for the maintenance, upgrades, installation of software, etc.

A managed VPS is a lot more expensive than unmanaged, for obvious reasons.

But there is a shortcut: Purchase a VPS, then purchase support separately whenever you need it. You may ask, how often is “whenever you need it”?

Well, Since setting up my server a year ago, I only had to purchase support one time, which cost me $7.50.

Let’s see how much different hosting companies charge.

Note: 1GB RAM and 1 CPU offered for $5/mo by some companies isn’t enough for a server + websites.

Cloudways – $10/mo – 1 GB RAM/1 CPU/25 GB storage
– Cloudways – $42/mo – 4 GB RAM/2 CPU/80 GB storage
Digital Ocean – $20/mo – 4 GB RAM/2 CPU/80 GB storage

_________________ SSD NODES ______________

This is the hosting company that I am using.

SSD Nodes pricing

Take a look at these plans:

  • SSD Nodes Regular– $59/yr – 8 GB RAM/2 CPU/80 GB storage
  • SSD Nodes Regular- $79/yr – 16 GB RAM/4 CPU/160 GB storage
  • SSD Nodes Performance – $99/yr – 16 GB RAM/4 CPU/160 GB storage

The only catch is that you need to purchase a 3-year package to get these prices.

* Prices are subject to change

Purchasing Your VPS

1. Select your desired server location and the Operating System (CentOS 8).

2. You will need a FQDN (fully qualified domain name) = the hostname = server name.

The hostname can be a subdomain of your site, such as vps01.yourdomain.com.

As an example, my site is funnelxpert.com. I could use green.funnelxpert.com or any other subdomain as my server name, while the main domain is my website.

Since I host 10 different sites on my VPS, I prefer to have a separate domain name for the server itself – in case I want to sell my site later on but want to keep the server. Therefore my server is web01.saadhost.com.

SSD Nodes purchase server

I recommend at least 8 GB RAM and 2 vCPUs. If needed, you can upgrade later.

If you get a 3-year plan for $59/yr (8 GB RAM/2 CPU/80 GB storage), and you have a $20 coupon, that would cost you $160, less than $4.50/month.

Domain Setup

Your host domain’s (yourdomain.com) name server should have the default name server provided by your domain registrar, such as ns1.dynadot.com, ns2.dynadot.com.

For the VPS to function, the DNS of your domain will need to be pointed to your server’s IP address.

Therefore log in to your domain registrar account and open “Manage DNS”. Your settings should be edited to look something like this:

Hostname

Record Type

IP Address / Value

TTL

A

10.25.216.217

172817

www

CNAME

yourdomain.com

172817

mail

A

10.25.216.217

172817

web01

A

10.25.216.217

172817

Note: “web01” should be replaced with the subdomain of your choice. It may take a few hours to 48 hours until the DNS changes propagate.

Your SSD Nodes Dashboard

https://www.ssdnodes.com/manage/clientarea.php

After you placed your order, you can log in.

Dashboard >My servers >Manage my server

Details (These are your hosting details and basic guides)

Server type Performance+ – 16GB RAM
Status Active
Hostname web01.saadhost.com
Location New York [USA]
Primary IP 124.125.126.127
Username root
Password Show password

Getting started: The SSD Nodes VPS Beginner’s Guide
Connect to your server: How to access your server using SSH
Security: The 6 Critical Steps to Secure Your Servers (PDF)

Billing

Registration date 2019-09-23
First Payment Amount $137.00 USD
Recurring amount $267.00 USD
Billing cycle Triennially
Next due date 2022-09-23
Payment method PayPal/Credit card
Upgrade / Manage rDNS

Administration

Server type Virtual Machine
Hostname web01.saadhost.com
Platform Linux x86_64
OS Package CentOS Linux
Status Running
Guest tools Installed
IP Address
vCPUs 4
Memory 16.00 GB
Disk 160.00 GB

Stop/Reinstall

If your server becomes unresponsive, this is where you can stop and then restart it.

Getting Support From CentOS Web Panel

With shared hosting you probably used cPanel as your control panel. However cPanel costs $15/month.

We are going to use CentOS Web Panel (CWP) as our control panel. Create an account, because that’s where how you will be getting support.

CWP has a free version and a Pro version that costs $11/year. I highly recommend that you purchase CWP Pro.

Centos Web Panel.com also provides Installation & Migration service.

Server Installation

For donation of $5.00 we will install CWP for you and configure the following.
– Configure shared IP
– Configure DNS and Name Servers
– Configure Mail Server
– Configure Firewall & Mod Security rules (for best security)
– Configure Local or Remote Backups
– Configure Services Monitoring and AutoRestart if service is down with the email notifications.
– Change SSH Port
– Quota Setup
– PHP Selector, PHP version per user or per folder (PHP 5.2, 5.3, 5.4, 5.5, 5.6, 7)

Server Installation and Web Site migration from cPanel

For donation of $10.00 we will install CWP and the following configurations:
– Configure shared IP
– Configure DNS and Name Servers
– Configure Mail Server
– Configure Firewall & Mod Security rules (for best security)
– Configure Local or Remote Backups
– Change SSH Port
– Quota Setup
– PHP Selector, PHP version per user or per folder (PHP 5.2, 5.3, 5.4, 5.5, 5.6,7)
– Migrate your website (e.g. WordPress, Joomla, WebShop….)
– Configure SSL (if needed)

Once you made your purchase, a ticket will be opened for you automatically and you can submit your request. You will also need to submit your root password.

CentOS Web Panel support

CWP Support

One Time Support: is for one issue with CWP only. It costs $7.49.

Managed CWP: is Managed support for CWP servers only. It costs $12.99/month.

Setting up Name Servers for Your VPS

(Done-For-You if you purchased installation service)

(You will need this if you want to host additional websites, not just your main one.)

1. CWP has a free name server function, here is the tutorial.

2. FreeDNS is a free DNS cluster with DDOS protection for serving your website DNS records. FreeDNS is using servers in North America and Europe.

You can register and start using FreeDNS here.

To start using FreeDNS, the following Name-Servers need to be set for the hosted domains with their domain registrar:

  • ns1.centos-webpanel.com
  • ns2.centos-webpanel.com

How To Connect to Your CentOS VPS Through SSH

SSH is short for Secure Shell. It enables two computers to establish an (encrypted) and direct connection (i.e. no man-in-the-middle attack is possible and data cannot be manipulated on its way).

By default, SSD Nodes servers are accessible through SSH, so you don’t need to spend any time on setup.

If you’re using a Windows machine, I recommend PuTTY to log in to your VPS.

You will need

  • Your IP address
  • Port: 22 is the default, until you change it
  • User name: root
  • Root password
IP: 63.250.55.194
User: root
Password: f5AcaS2e2u

On your first login, you will get this screen (press “Yes”):

SSH first logon warning

Now enter your user name and password:

login as: root 
root@63.250.55.194's password:

You can use this command to identify your Linux distribution:

hostnamectl

You will see this output:

login as: root
root@63.250.55.194's password:
Last failed login: Fri Oct  2 11:10:49 UTC 2020 from 77.40.123.115 on ssh:notty
There was 1 failed login attempt since the last successful login.
Last login: Fri Oct  2 11:04:22 2020 from 149.200.88.88
[root@peter_nyiri ~]# hostnamectl
   Static hostname: peter_nyiri
         Icon name: computer-vm
           Chassis: vm
        Machine ID: a11043dd5ef135247b8c3a7fc970ea08
           Boot ID: 0162e9922ee64f6ab2b861337cb6fefc
    Virtualization: kvm
  Operating System: CentOS Linux 8 (Core)
       CPE OS Name: cpe:/o:centos:centos:8
            Kernel: Linux 4.18.0-193.14.2.el8_2.x86_64
      Architecture: x86-64
[root@peter_nyiri ~]# 

You can see that this is CentOS Linux 8.

There are failed logins because bots are always trying to hack into servers…

Installing CentOS Web Panel

(Done-For-You if you purchased installation service)

The installation of the free version of Centos Web Panel is pretty easy. Just few commands to download the installation script and run it. The script will automatically install all the required packages for CWP, and at the end of the installation, you will be provided with an URL to log into the panel.

Here is the procedure for CentOS 7:

Difference between CentOS 7 and CentOS 8:

CentOS 7: Security updates and fixes will be available for 7 until June 2024

CentOS 8: Security updates and fixes will be available for 7 until June 2029

Performance difference between CentOS 7 and CentOS 8:

Here is the procedure for installing CentOS 8 (I will walk you through this below).

First we update everything:

[root@peter_nyiri ~]# sudo dnf update
Last metadata expiration check: 1:03:05 ago on Fri 02 Oct 2020 10:36:49 AM UTC.
Dependencies resolved.
=========================================================================
 Package                   Arch    Version                 Repo     Size
=========================================================================
Installing:
 kernel                    x86_64  4.18.0-193.19.1.el8_2   BaseOS  2.8 M
 kernel-core               x86_64  4.18.0-193.19.1.el8_2   BaseOS   28 M
 kernel-modules            x86_64  4.18.0-193.19.1.el8_2   BaseOS   23 M
Upgrading:
 bind-export-libs          x86_64  32:9.11.13-6.el8_2.1    BaseOS  1.1 M
 centos-gpg-keys           noarch  8.2-2.2004.0.2.el8      BaseOS   12 k
 centos-release            x86_64  8.2-2.2004.0.2.el8      BaseOS   21 k
 centos-repos              x86_64  8.2-2.2004.0.2.el8      BaseOS   13 k
 dnf-plugins-core          noarch  4.0.12-4.el8_2          BaseOS   64 k
 initscripts               x86_64  10.00.6-1.el8_2.2       BaseOS  338 k
 kernel-tools              x86_64  4.18.0-193.19.1.el8_2   BaseOS  3.0 M
 kernel-tools-libs         x86_64  4.18.0-193.19.1.el8_2   BaseOS  2.8 M
 kpartx                    x86_64  0.8.3-3.el8_2.3         BaseOS  105 k
 libcroco                  x86_64  0.6.12-4.el8_2.1        BaseOS  113 k
 librepo                   x86_64  1.11.0-3.el8_2          BaseOS   90 k
 libteam                   x86_64  1.29-1.el8_2.2          BaseOS   63 k
 python3-dnf-plugins-core  noarch  4.0.12-4.el8_2          BaseOS  204 k
 teamd                     x86_64  1.29-1.el8_2.2          BaseOS  128 k
 zlib                      x86_64  1.2.11-16.el8_2         BaseOS  102 k
Installing dependencies:
 linux-firmware     noarch  20191202-97.gite8a0f4c9.el8    BaseOS   72 M

… etc... 

Installed:
  kernel-4.18.0-193.19.1.el8_2.x86_64
  kernel-core-4.18.0-193.19.1.el8_2.x86_64
  kernel-modules-4.18.0-193.19.1.el8_2.x86_64
  linux-firmware-20191202-97.gite8a0f4c9.el8.noarch

Complete!
[root@peter_nyiri ~]# 

You can clear the screen if you want:

clear

Make sure to set the correct hostname:

hostnamectl set-hostname web01.saadhost.com 

Install wget (the downloader script):

sudo dnf install wget

Download and install CentOS Web Panel.

cd /usr/local/src
wget http://centos-webpanel.com/cwp-el8-latest
sh cwp-el8-latest

The installation script will take some time to complete, and once it’s done you will be provided with an URL to access the panel and your MySQL root password.

#############################
#      CWP Installed        #
#############################

Go to CentOS WebPanel Admin GUI at http://SERVER_IP:2030/

http://63.250.55.194:2030
SSL: https://63.250.55.194:2031
---------------------
Username: root
Password: ssh server root password
MySQL root Password: xylfByviWe9b

#########################################################
          CentOS Web Panel MailServer Installer
#########################################################
SSL Cert name (hostname): web02.saadhost.com
SSL Cert file location /etc/pki/tls/ private|certs
#########################################################

Visit for help: www.centos-webpanel.com
Write down login details and press ENTER for server reboot!
Please reboot the server!
Reboot command: shutdown -r now
[root@peter_nyiri src]#

Now we reboot the server:

[root@peter_nyiri src]# shutdown -r now

That is all we had to do in the terminal window.

Accessing Our Server Through CentOS Web Panel

CentOS Web Panel will be available on HTTPS port 2031 by default. Open your favorite browser and navigate to https://your-domain.com:2031 or (non-SSL) http://server-ip-address:2030.

Log in to the panel using the system’s root account. You got the password in the previous step.
On your firewall, ports 2030 and 2031 need to be open open to enable access to the control panel.

https://63.250.55.194:2031

At this point SSL is not set up yet, therefore you will get a non-secure message. (Click on Make an exception.)

cwp login

This is your CWP dashboard:

cwp dashboard

Setting Up Your CWP

Setting Notification Email

(Done-For-You if you purchased installation service)

The first warning is

WARNING! Your root Email address for notifications isn’t set.

root Email address for notifications

Let’s set both the Admin Email and for CSF/LFD Firewall alerts.

Change SSH port & Enable Firewall

(Done-For-You if you purchased installation service)

CWP comes with the OpenSSH server. This is using by default port 22. CWP doesn’t modify this at installation time but notifies you to change it as soon as possible. The message looks like:

WARNING: Security vulnerability! Your server is using default SSH Port 22, to make your server more secure change SSH port in config file /etc/ssh/sshd_config and in CSF firewall ! After changes are done don’t forget to restart SSH and CSF Firewall.

To modify the SSH port on CentOs Web Panel:

1. Go to Services Config->SSH Configuration

2. This will open for editing the file /etc/ssh/sshd_config

3. Look for the line:

#Port 22

and change the port number to something else, like 2211; also remove the # character from the beginning of the line. In the end, you will have:

Port 2211

4. Click the Save changes button

5. Go to the Dashboard and restart the SSH server.

6. Go to Security->CSF Firewall, click the Firewall Configuration button

7. Look for the # Allow incoming TCP ports section and add your port number to the list. Let’s say it is 1111.

The line will look like this:

# Allow incoming TCP ports
TCP_IN = “20,21,25,53,80,110,143,443,465,587,993,995,1111,2030,2031,2082,2083,2086,2087, 2095,2096”

8. Click the Save changes button

9. Go to Navigate to Security->Firewall Manager, click the Enable Firewall button

Now both CSF (Config Server Firewall) and LFD (Login Failure Daemon) have been enabled.

Now you will be able to connect to the server via SSH using the new port number and your firewall is enabled.

Enable mod_security for CWP

(Done-For-You if you purchased installation service)

Installation and management of the mod_security with CWP are very simple, you can install it with a single click.

To install mod_security you only need to click on the Green “Install mod security” button in your cwp.admin Security –> Mod Security.

CWP install mod_security

Restart Apache.

With the installation of mod_security, you are also getting a set of rules.

OWASP (Open Source Foundation for Application Security) rules are very strict and you probably need to add few rules on the white-list.

By enabling mod_security with OWASP old rules, you should also test your websites fully and if you get forbidden 403 or similar error messages then you would need to check which OWASP rule is blocking you.

You can check the rule ID blocking you by simply searching your IP address in the mod_security module of the CWP.

To disable a rule blocking you, you need to add its ID listed under quotes into disabled rules file and once you add all rules the apache reload is necessary to accept these new changes.

How to whitelist Mod Security rules if you get http error 403 Forbidden

(Done-For-You if you purchased installation service)

What is the difference between the CSF Firewall and ModSecurity?

Basically, in the firewall, you have open port 80 and 443 meaning that the firewall can’t protect you from malware, xss and sql-injection attacks.

ModSecurity will help to improve the security of your server and scripts you are using on it.

How to quickly find from ssh which rule id you need to whitelist

grep 121.231.214.25 /usr/local/apache/domlogs/*error.log|grep ModSecurity

* replace numbers with your computer IP

Hide system processes from users

(Done-For-You if you purchased installation service)

You will see this warning on the root user dashboard after creating a new user.

In Security Center of the cwp.admin you have additional options to have your server even more secure.

One of the options is to have all server processes hidden from users if they are the not owner of the process.

This is great security option as the user running php or a shell script will not be able to check the other server services running on the server.

Click the link in the error and it’ll take you to the settings page.

Click “Enable protection” and that’s it.

Start Monit Monitoring

(Done-For-You if you purchased installation service)
(CWPpro required)

You will also see this error:

Monit Monitoring is NOT set on your server, click here to check it.

Monit is a small Open Source utility for managing and monitoring Unix systems. Monit conducts automatic maintenance and repair and can execute meaningful causal actions in error situations, e.g restart it automatically if it’s stopped or not responding.

Steps to Activate Monit:

  1. Open the Monit module under CWP
  2. Press the green Install Monit button
  3. Press Restart Monit Service
  4. Go to the Configurations tab
  5. Add pre-defined configurations to Monit
  6. Restart Monit

Video tutorial:

Changing The Host Name

(Done-For-You if you purchased installation service)

This is in case you want to change your hostname later on or you have to re-create SSL certificate for your hostname.

Server Settings > Change Hostname

Changing the hostname will also generate a new autoSSL Certificate for your host. (The certificate paths are displayed on this page.)

Certificate Path: /etc/pki/tls/certs/hostname.bundle
Key Path: /etc/pki/tls/private/hostname.key
Pure-FTPd PEM: /etc/pki/tls/private/hostname.pem

CWP change hostname

Enter the New Hostname, select the SSL options.

Press Change Hostname and you will get this message:

Hostname changed successfully, for a more detailed info you can check the log: /var/log/cwp/autossl.log

You will also see the following:

rDNS/PTR = FAILED, check with your hosting provider! FAILED

rDNS/PTR check for IP 63.250.55.194 = not found!

change hostname details

Without going into details, rDNS/PTR assigns your IP (63.250.55.194) to the hostname (web01.movingtogether.net.)

Simply create a ticket and ask your hosting provider to change your rDNS/PTR record to the new hostname, otherwise emails sent from this host will go into the spam folder for sure.

You will also see all the control panel URLs displayed, SSL and non-SSL.

Admin Log-in URL:
https://xxxx.yourhost.com:2031

Client log-in URL:
https://xxxx.yourhost.com:2083

Wiki:
CentOS Web Panel Wiki

Setting Up A User Account

At this stage, you are ready to add additional domains, but for that, you need to have at least one user account. You must create a user account that belongs to yourself and link this main account to the domain to add your site in a personal hosting server.

Create a user account by navigating to User Accounts -> New Account from the left menu bar. Provide all the details like domain name, username, password, and so on. Optionally you can tick shell access and autoSSL features.

You will be provided with Account details and Panel URL for this new user.

Account Details
========================================
Server IP: SERVER_IP
Web Panel Login:
Domain: DOMAIN.TLD
Username: USERNAME
Password: PASSWORD
Admin Email: EMAIL@DOMAIN.TLD
Panel URL:
http://SERVER_IP:2082
https://SERVER_IP:2083
NameServers:
ns1.centos-webpanel.com
ns2.centos-webpanel.com

Installing a Free Let’s Encrypt SSL certificate

(Done-For-You if you purchased installation service)

Navigate to Apache Settings->SSL Cert Manager and look for the AutoSSL tab/section.

Then enter the username you created in Step 3, followed by the hostname/domain you want to encrypt with SSL.

Click the Install SSL button, and you should see a message confirming that it was installed successfully.

Upgrade to PHP 7

(Done-For-You if you purchased installation service)

As you can see, the default PHP version is 5.6 unfortunately. Therefore we need to upgrade to 7.4.

cwp dashboard bottom section

Click on the pencil icon next to the PHP version line, or go to PHP Settings -> PHP Switcher.

This is the main PHP version in cwp which is used as a default for all new clients and domains.

You can have only a single version active at the same time but you can select which you want to use, versions: 5.3, 5.4, 5.5, 5.6, 7.0, 7.1, 7.2, 7.3, 7.4

This is the main PHP version switcher.

Select the required PHP 7.x version:

php version switcher

After you select your desired PHP version CWP will start PHP compiler in the background, installation can take up to 15 minutes.

You can check your PHP version in 10-15 minutes on the Dashboard.

Add any additional modules required, such as Ioncube and imagick.

php extensions

The new build will also remove all old extensions from the folder: /usr/local/php/php.d/

Press the blue Save & Build button.

You will see the following message:

PHP Compiler Started in Background. You can monitor PHP rebuild from the console using command: tail -f /var/log/php-rebuild.log

In 15 minutes you will see the PHP version change to 7.4.11.

php version upgraded

Install PHP-FPM

(Done-For-You if you purchased installation service)
(CWPpro required)

You can install PHP-FPM from PHP Settings -> PHP-FPM Selector.

PHP-FPM is a faster, more robust version of PHP. You can install more than one PHP version, but then you will need to activate them via WebServer Settings -> WebServers Domain Conf from the left menu in the cwp.admin.

php-fpm setup

Similarly to the main PHP switcher, you can select the required modules under Select Options.

Then press the blue Start Compiler (Build & Install) button.

Setup Default Web Servers

(Done-For-You if you purchased installation service)

With CWP servers, you have the highest flexibility that you could ever imagine.
You can run different WebServers Setup for each domain and even combine other servers.

To have the ability of all options first you need to install and enable all webservers that you would need.

CentOS WebPanel allow you to select the web servers setup you want to use.

To Install the required WebServers, in CWP.admin left menu go to WebServer Settings -> Select WebServers.

You have some options:

Web Server

Ports

==> Apache Only
HTTP: Apache (80)
HTTPS: Apache (443)

Apache: 80,443

Nginx Only
Additional Options: php-fpm, proxy
HTTP: Nginx (80)
HTTPS: Nginx (443)
Info: Nginx+PHP-FPM and useful as proxy cache for NodeJS, Ruby, Tomcat

Nginx: 80,443

==> LiteSpeed Enterprise
HTTP: LiteSpeed (80)
HTTPS: LiteSpeed (443)

LiteSpeed: 80,443

==> Apache & Nginx Reverse Proxy
HTTP: Nginx (80) –> Apache (8181)
HTTPS: Nginx (443) –> Apache (8181)

Nginx: 80,443
Apache: 8181,8443

Nginx & Varnish
Additional Options: nginx/php-fpm, proxy
HTTP: Nginx (80) –> Varnish (82)
HTTPS: Nginx (443) –> Varnish (82)
Info: Useful as nginx/varnish proxy cache for NodeJS, Ruby, Tomcat
** Requires custom configuration per domain, as default behavior is proxy to varnish.
** Varnish you can enable additionally for domains you need.

Nginx: 80,443
Varnish: 82

==> Apache & Varnish Cache & Nginx Reverse Proxy
HTTP: Nginx (80) –> Varnish (82) –> Apache (8181)
HTTPS: Nginx (443) –> Varnish (82) –> Apache (8181)

Nginx: 80,443
Varnish: 82
Apache: 8181,8443

Select the configuration you want and click the Save & Rebuild Configuration button. You will see the confirmation message: Data Updated.

LiteSpeed is basicaly a replacement server for Apache.

LiteSpeed is not free. Prices start at $14.00/month.

Video:

Video Tutorial

All options explained

They recommend going with all: Nginx/Varnish/Apache as then you have all other options.

– 10.1 Apache + php-cgi (suPHP handler running PHP Selector & PHP Switcher, it can also change PHP version per folder)
This is our old the most flexible apache which supports any script and also has the advantage of php selector and php-switcher.
* php selector – gives you the flexibility to run a different php version per folder by using htaccess.
* php switcher – this is a default version of php installed during cwp first setup and its also default for all new accounts/domains/subdomains.

– 10.2 Apache + php-fpm (via PHP-FPM Selector, one php version per domain/subdomain)
This is our new feature which provides you with the maximum performances which php has to offer. It runs via fcgi handler with php-fpm selector.
Here you can run different php versions only per domain/subdomain.

– 10.3 Apache + proxy (proxy to custom port, example for tomcat or to other IP and port)
Apache proxy works like a proxy for other applications or other location, example you can proxy some domain/subdomain to other IP:PORT.
This can be useful if you need to run some other application on the custom port or if you need to proxy to your custom application on the other server.

– 10.1.1 Nginx/Apache + php-cgi (suPHP handler running PHP Selector & PHP Switcher, it can also change PHP version per folder)
This is our old the most flexible apache which supports any script and also has the advantage of php selector and php-switcher.
Nginx is here used as a proxy server so it will handle ssl and also will handle many static files to reduce the load on apache giving you the better performances.
* php selector – gives you the flexibility to run a different php version per folder by using htaccess.
* php switcher – this is a default version of php installed during cwp first setup and its also default for all new accounts/domains/subdomains.

– 10.2.1 Nginx/Apache + php-fpm (via PHP-FPM Selector, one php version per domain/subdomain)
This is our new feature which provides you with the maximum performances which php has to offer. It runs via fcgi handler with php-fpm selector.
Here you can run different php versions only per domain/subdomain via php-fpm selector.
Nginx is here used as a proxy server so it will handle ssl and also will handle many static files to reduce the load on apache giving you the better performances.

– 10.3.1 Nginx/Apache + proxy (proxy to custom port, example for tomcat or to other IP and port)
Apache proxy works like a proxy for other applications or other location, example you can proxy some domain/subdomain to other IP:PORT.
This can be useful if you need to run some other application on the custom port or if you need to proxy to your custom application on the other server.
You can also run nginx proxy directly to avoid apache but in some cases, you need to do it via apache.

– 10.1.2 Nginx/Varnish/Apache + php-cgi (suPHP handler running PHP Selector & PHP Switcher, it can also change PHP version per folder)
This is our old the most flexible apache which supports any script and also has the advantage of php selector and php-switcher.
Nginx is here used as a proxy server so it will handle ssl and also will handle many static files to reduce the load on apache giving you the better performances.
Varnish will make your php scripts look like a static site and provide incredible performance and dramatically reduce the load of php-cgi.
* php selector – gives you the flexibility to run a different php version per folder by using htaccess.
* php switcher – this is a default version of php installed during cwp first setup and its also default for all new accounts/domains/subdomains.

– 10.2.2 Nginx/Varnish/Apache + php-fpm (via PHP-FPM Selector, one php version per domain/subdomain)
This is our new feature which provides you with the maximum performances which php has to offer. It runs via fcgi handler with php-fpm selector.
Here you can run different php versions only per domain/subdomain via php-fpm selector.
Nginx is here used as a proxy server so it will handle ssl and also will handle many static files to reduce the load on apache giving you the better performances.
Varnish will make your php scripts look like a static site and provide incredible performance and reduce the load of php-fpm.

– 10.3.2 Nginx/Varnish/Apache + proxy (proxy to custom port, example for tomcat or to other IP and port)
Nginx is here used as a proxy server so it will handle ssl and also will handle many static files to reduce the load on apache giving you the better performances.
Varnish will make your scripts look like a static site and provide incredible performance and reduce the load on your script.
Apache proxy works like a proxy for other applications or other location, example you can proxy some domain/subdomain to other IP:PORT.

– 20.2 Nginx + php-fpm (via PHP-FPM Selector, one php version per domain/subdomain)
This is our new feature which provides you with the maximum performances which php has to offer. It runs via fcgi handler with php-fpm selector.
Please note that when nginx is handling all then you need to make custom templates for each type of cms depending on the rewrite/redirect rules you need.

– 20.3 Nginx + proxy (proxy to custom port, example for tomcat or to other IP and port)
Nginx is here used as a proxy server so it will handle ssl and also will handle many static files to reduce the number of request to your application.

– 30.1 Nginx/Varnish -> proxy to custom IP:port, example for tomcat/ruby/nodejs or some other server
Nginx is here used as a proxy server so it will handle ssl and also will handle many static files to reduce the number of request to your application.
Varnish will make your scripts look like static site and provide incredible performance and reduce the load on your script.

Force PHP-FPM

This option would disable php-cgi so you wouldn’t be able to use it anymore.
You will be only able to use PHP-FPM selector, PHP Switcher and PHP Selector will not be in use anymore

Activation of varnish

By default Varnish is always disabled, you can only activate it for each domain in CWP.admin left menu, under WebServer Settings -> WebServers Domain Conf when you selecting varnish in the custom config for that domain.

Update Manager

(CWPpro required)

Whenever there is an update available, you will get the following notification:

cwp yum update manager

Simply click on the link and press “Update All”.

If you don’t have CWP Pro, you can only update your server from the terminal’s command line.

Setting Up Email Accounts In CWP

You can create a new domain email (for free) under Email > Email Accounts.

Click the green Add New Domain Mail at the top right corner.

Select the user, add the email address and the password:

CWP Add New Domain Mail

Under Actions there is Autologin, Change Password, Suspend and Delete.

cwp list mailbox accounts

Autologin will log you into RoundCube Webmail:

Autologin log into RoundCube Webmail

Let’s send a test email (it will arrive to the spam folder):

test email

Now let’s answer the email to test if the incoming works:

incoming test email

You will need to set up several things so that emails don’t go to the spam folder.

Related: How To Avoid Email Spam Filters

CWP File Manager

File Management > Advanced File Manager

Here you have a full-blown file manager.

cwp file manager

At a basic level you need to know this:

– The “/” folder is called the root.

– The files of the different users can be found under the /home folder.

As an example, the website files of “movingin” will be under /home/movingin/public_html.

This is the folder you probably came across in your shared hosting.

– All the backup files of the different users can be found under the /backup folder.

Using FTP

File Management > FTP Manager

This is where you can manage FTP accounts, add FTP users, change FTP password.

FTP Manager

Set Daily, Weekly, Monthly Backups:

CWP Settings > Backup Configuration

CWP has an automatic backup function that is very useful.

MySQL Databases

SQL Services -> phpmyAdmin

This is where you can view/edit your databases through phpmyAdmin.

Rebooting Server

CWP Settings -> Reboot Server

This is where you can restart the server if something goes wrong.

If the CWP panel freezes for some reason and you are unable to reboot, you have two more options.

– Log into the Putty terminal and type the following:

sudo reboot

– Log into your VPS hosting account, stop the server, then start it again.

Installing WordPress

In order to install WordPress, you need the following:

  • CentOS Web Panel Installed and Configured
  • CentOS Web Panel User Created
  • Desired domain configured to point to your VPS
  • Log into your user panel.
  • Install from Addons -> WordPress

(You don’t need Softaculous )