8 Best cPanel/WHM alternatives (2019)

cPanel recently announced that they will change their pricing and licensing structure starting September 1st. Apart from raising the license prices and changing their names they have also included a limits in number of sites (accounts) a license can have.

New cPanel offer now includes two licenses for clouds: Admin license costs $20/month and allows you to host a up to 5 accounts (websites) per a cloud (VPS), Pro license costs $30/month and allows you to host up to 30 accounts on one cloud (VPS).

Other than these two there is also a Premier license that can be installed on cloud (VPS) or metal (dedicated server) and for price of $45/month allows you to host up to 100 accounts. If you have more than 100 accounts you will be charged $0.20 for each additional account per month.

New cPanel pricing scheme

You can check their new pricing structure at their website at https://cpanel.net/pricing/ . They have also published a Licensing Guide a PDF file that should clarify what will change and how.

What’s interesting is that the cPanel was sold in August 2018 to Oakley Investment and just after a year they have decided to totally change their pricing structure, even then they said that there will be “no immediate customer impact”. Well it took them the whole year to figure out how to make a bank out of cPanel – so it’s not “immediate”.

This price change will affects mostly resellers and users that have more than 100 accounts on their servers and many of these reported that their licensing cost will increase even over 800% basically overnight.

cPanel is probably the best web hosting control panel, but what are the good alternatives? Here’s the complete 2019 list of cPanel alternatives:

Continue Reading

How to mount DigitalOcean Space on CentOS 7

DigitalOcean S3 compatible object storage called Spaces allows you to store and serve large amounts of data. They are easy to create and are ready to be used within seconds without any configuration. They are ideal for storing static unstructured data like audio, video and images as well as binary files, archives, backups etc.

What’s so cool about Spaces compared to Amazon S3 is the fact that their pricing structure is WAY more easier to understand and predict. For $5/month you get 250 GB of storage and 1 TB of outbound transfer (inbound/upload is always free). Every additional GB stored costs $0.02 and every additional GB transferred costs $0.01. On top of that you can even serve these files utilizing use their free CDN service at no additional cost! (This alone on Amazon CloudFront can cost you a little fortune!).

Now back to the main topic: mounting DigitalOcean Space as a folder on your server that can be used to store any kind of data.

Continue Reading

How to backup WHM/cPanel accounts to DigitalOcean Spaces

For the past several years I have been using Amazon S3 to backup my WHM/cPanel accounts. It works quite good but the problem is Amazon’s complex pricing model (that charges you for things like diskspace, bandwidth, requests) making price for the service is quite unpredictable. I’ve read on many places that people often got surprised at the end of the month receiving the bill from Amazon.

Recently I have started testing DigitalOcean Spaces, a service similar to Amazon’s S3 (S3 compatible alternative) but with a pricing structure anyone can understand: for $5/month you get 250 GB of storage and 1 TB of outbound transfer (inbound transfer is free like on S3). If you need more than that it will cost you 2cents per every additional GB of storage and 1cent for every additional of outbound GB. Also first two months for every new space are free!

Continue Reading

How to mount Amazon S3 bucket with Goofys?

While experimenting with s3fs I have also found out another tool written in go programming language that named Goofys. Like s3fs, this tool can also mount Amazon S3 bucket as a folder that can later be accessed just like any other local folder making accessing files in S3 bucket, backing up data or syncing files quite easy. Detailed installation manual for Goofys covers only Mac while Linux installation guide is basically non-existing, so this will be my guide on how to install Goofys and mount Amazon S3 bucket on an Ubuntu Linux. This has been tested on DigitalOcean droplet running a Ubuntu version 16.04.3 x64. If you’re also testing this out on a new VPS like me – make sure to execute apt-get update  before you start.

But why would anyone want to use Goofys if s3fs is working fine? Well, according to benchmarks available at Goofys github main reason you would like to use this is performance! Goofys is much faster than s3fs. For some operations Goofys is ten times faster than s3fs making it the right choice for situations when you need access to S3 to be really fast (or as close as it being just a folder on the same drive).

How to install Go language on Ubuntu Linux?

As mentioned above Goofy is written in GO so we need to install GO in order to use Goofy. Installing go requires you to download the latest version from https://golang.org/dl/ unpack it:

<code># Download Go language binary
wget https://storage.googleapis.com/golang/go1.9.3.linux-amd64.tar.gz

# Unpack the downloaded fole to /usr/local
tar -C /usr/local -xvzf go1.9.3.linux-amd64.tar.gz

# Remove the archive
rm go1.9.3.linux-amd64.tar.gz

# Create the Go language work directories
mkdir -p /go/projects/goofys/{bin,pkg,src}</code>

No create this file path.sh at /etc/profile.d path

<code>vi /etc/profile.d/path.sh</code>

copy paste the line below, save the changes and exit:

<code>export PATH=$PATH:/usr/local/go/bin</code>

Now edit ~/.bash_profile file:

<code>vi .bash_profile</code>

and copy paste these two lines, save and close:

<code>export GOBIN=/go/projects/goofys/bin/
export GOPATH=/go/projects/goofys/</code>

To apply these changes to your current bash session source both scripts

<code>source /etc/profile &amp;&amp; source ~/.bash_profile</code>

How to install AWS CLI on Ubuntu Linux?

AWS CLI is required by Goofy and installation is pretty straight forward:

<code>apt-get install awscli</code>

How to install Gooofy on Ubuntu Linux?

Once Go language is installed correctly, installing Goofy is quite simple. All you need to do is simply execute these two commands:

<code>go get github.com/kahing/goofys
go install github.com/kahing/goofys</code>

At this point Goofy should be installed and in order to use it we need to save

Setting up Amazon S3 credentials

To allow AWS CLI to access your S3 buckets create store credentials at this file:

<code># Make the hidden folder that holds the AWS credentials file
mkdir ~/.aws

# Create and start editing the credentials file
vi ~/.aws/credentials</code>

In the following format:

<code>[default]
aws_access_key_id=REPLACE_THIS_WITH_YOUR_ACCESS_KEY
aws_secret_access_key=REPLACE_THIS_WITH_YOUR_SECRET_KEY</code>

Don’t forget to copy/paste your actual AWS access and secret keys above. Save and exit once you’re done.

Check if AWS S3 is working

To verify if the credentials are right and that you have entered them correctly, list all the buckets using:

<code>aws s3 ls</code>

The response should show the list of available buckets.

For this test I have created a new bucket called GeekTnT

Mounting a Amazon S3 bucket  with Gooofy

Now let’s create a folder where we will mount our bucket. For the purpose of this post we’ll create a folder /backup and we’ll mount GeekTnT bucket on it.

<code># Creates a backup folder
mkdir /backup

# Mount a GeekTNT.com bucket to a /backup folder
/go/projects/goofys/bin/goofys GeekTnT /backup</code>

And the final result is that now we have an s3 bucket mounted to our /backup folder with basically unlimited disk space (1PB) that we can use to store data or backups.

Unmounting the S3 bucket is simple. Just execute:

<code>umount /backup</code>

Checking if it actually works

Everything seems fine – but does it work. To test that out I’ll create a file in /backup folder and since this is a new DigitalOcean droplet and I have no bigger files that I can copy, I’ll download a Go language installation file directly into /backup folder.

If everything works these should automatically be available inside Amazon’s console.

… and there it goes.

It works!

How to disable excessive resource usage alert emails?

If you have CSF firewall installed in cPanel you might noticed that you’re getting an email every time some process (usually a php script) uses more than 250MB of memory (default value) or more than 1800 secoonds (also default value).

These emails are being sent by LFD service that sends excessive resource usage alerts to the email address which is assigned to it, normally to root user account. This notification points out a particular process or service using excessive server resources and helps in identifying the resource eating process/service. We can either kill/stop the process/service to free the resource or allocate more resource to it, if necessary, increase the limits or simply do nothing and wait for it to finish it’s work.

Sample LFD email message when memory is exceeded:

—Time: Mon Nov 14 09:41:10 2016 +0530
—Account: xxxxxx
—Resource: Virtual Memory Size
—Exceeded: 205 > 200 (MB)
—Executable: /usr/bin/php
—Command Line: /usr/bin/php /home/xxxxxx/public_html/index.php
—PID: 26953 (Parent PID:24974)
—Killed: No

Sample LDF email message when execution time is exceeded:

—Time: Mon Nov 14 09:41:10 2016 +0530
—Account: xxxxxx
—Resource: Virtual Memory Size
—Exceeded: 125389 > 1800 (seconds)
—Executable: /usr/bin/php
—Command Line: /usr/bin/php /home/xxxxxx/public_html/index.php
—PID: 28429 (Parent PID:26561)
—Killed: No

Getting Started
1) Login to your WHM
2) Go to Home >> select Plugins
3) Click “ConfigServer Security & Firewall”
4) Locate and click at “Firewall Configuration” button

Method 1
This method will permanently disable the LFD excessive resource usage alert and you won’t receive any more emails. Performing this method could pose a a potential security/stability issue (you have been warned! 🙂 ).

5) Modify the value of directives PT_USERMEM and PT_USERTIME to 0.

PT_USERMEM = 0
PT_USERTIME = 0

Method 2
We will increase the values of both memory and time to stop or minimize the LFD alerts. If any process/service uses more resources than defined, you will still continue to receive the LFD alerts, but hopefully less.

5) Modify the value of directives PT_USERMEM and PT_USERTIME to desired.

PT_USERMEM = 500
PT_USERTIME = 150000

Finish
Save the changes you have made and restart CSF+LFD. By doing any of these two methods above should result in getting less or no email alerts from LFD.