Introduction

This document written to install and configure WHMCS.
WHMCS is an all-in-one client management, billing & support solution for online businesses. Handling everything from sign up to termination, WHMCS is a powerful automation & support tool.

What is WHMCS?

Stands for Web Host Manager Complete Solution.
The story of WHMCS began back in 2003 when as the owner of a web hosting business himself, Matt, our founder and CEO, embarked on a mission to make something better.
WHMCS was created with the aim of being a one-stop solution, offering client management, recurring billing, and integrated support tools in a single centralized platform that made everyday tasks quicker, easier, and more efficient.
Specializing in web hosting and digital services, since 2005, we have been enabling web hosting companies to automate more of their operations, reduce costs and deliver a better experience to their end-users thanks to our integrated platform.

WHMCS features

• Reseller Hosting and Domain registration
• Billing and automation
• Customer Support
• Powerful Client Area
• Powerful Admin Area
• Reseller VPS

Prerequisite

Most current web servers* with PHP & MySQL installed will be capable of running WHMCS. The following table shows the minimum and recommended system requirements for running WHMCS 8.0 and later. And a fresh ubuntu 20.4.1 server and static IP.
Requirment Minimum Recommended
PHP PHP Version 7.4Latest 8.0 Release
PHP Memory Limit 64MB 128MB**
PHP Database Extension PDO PDO
PHP Extensions Curl with SSL GD2 Image Library JSON Support XMLIconv MBString GMP OpenSSL BC Math Intl
MySQL Version 5.7.0Latest 8.0
Ioncube Loaders 10.2.0 or later The latest 10.x Ioncube for your PHP version
While these are the minimum requirements, we strongly recommend using the latest available, stable releases of all software and extensions. Recommended suggestions are correct as at 4th August 2020. Use SSH to connect to your Ubuntu server and copy past the command but for do that please check the code and your environment.

Start with SSH

change to root user

Su

type your passwordupdate and upgrade

Apt update
Apt upgrade

apt install apache2
apt install php php-cli php-fpm php-json php-pdo php-mysql php-zip php-gd php-mbstring php-curl php-xml php-pear php-bcmath

but if you want specific version of php use this command and change the 7.4 to yours

apt instal php7.4-mysql php7.4-xml php7.4-xmlrpc php7.4-curl php7.4-gd php7.4-imagick php7.4-cli php7.4-dev php7.4-imap php7.4-mbstring php7.4-opcache php7.4-soap php7.4-zip php7.4-intl -y

ioncube

Download ioncube
wget https://downloads.ioncube.com/loader_downloads/ioncube_loaders_lin_x86-64.tar.gz tar -zxvf ioncube_loaders_lin_x86-64.tar.gz cd ioncube
check which version do you want
ls -la
find the php extension directory
php -i | grep extension_dir
should be here but with diff number
/usr/lib/php/20190902/
copy iowncube to your library folder
sudo cp /tmp/ioncube/ioncube_loader_lin_7.4.so /usr/lib/php/20190902/
add the above location to your php and apache ini file.
Sudo vi /etc/php/7.4/cli/php.ini
past at 2nd line of in
zend_extension = /usr/lib/php/20190902/ioncube_loader_lin_7.4.so sudo vi /etc/php/7.4/apache2/php.ini
for Apache2
past at 2nd line
zend_extension = /usr/lib/php/20190902/ioncube_loader_lin_7.4.so

MySQL Server

apt install mysql-server mysql_secure_installation
enable mysql in boot time
sudo systemctl is-enabled mysql.service sudo systemctl enable mysql.service
login to mysql
mysql
set password for root user to login
ALTER USER ‘root’@’localhost’ IDENTIFIED WITH mysql_native_password BY ‘yourpassword’; Exit

PHPMyAdmin

sudo apt install phpmyadmin php-mbstring php-zip php-gd php-json php-curl
access your phpMyAdmin and create a db for whmcs

http://yourdomain.com/phpmyadmin

WHMCS

cd /var/www/html/member/
if you don’t have member folder then use (mkdir member)
https://download.whmcs.com/ unzip whmcs file
access your server url to complace the installation
http://yourdomain/member/install/
whmcs installation
past your license key and key in your database information
next

WHMcs configuring General settings

when you login for the first time to whmcs, it is going to ask to some general information 1-company name 2-company email address 3-domain 4-logo URL 5-pay to text address of the my company 6-whmcs system url http://ultraband.com.my/whmcs 7-paypal email address to receive the transaction 8-click on enable domain and all the option > choose the price for the domain
whmcs guide to install

cron job

apt install cron systemctl enable crone crontab -e
past this command
* * * 5 * /usr/bin/php -q /var/www/html/crons/cron.php
You are ready to do some basic configuration now.

Go to your whmcs dashboard

Payment gateway PayPal in WHMCS

1-go to setup>payments>payment gateways 2-click on all payment gateways 3-click on PayPal 1-tick show order 2-display name – PayPal 3-PayPal email- your PayPal email like [email protected] #the API settings are required to look up transaction details and process refunds from within WHMCS 4-login to PayPal account 5-profile > my selling tools > API access 6-click update 7-select request API credentials under the NVP/SOAP API integration heading 8-request API signature agree and accept 9-copy and past to whmcs the username, password and API signature 10-copy the URL in front of the save change to enable IPN or just past your https://www.urdamin.com/member 11-login to PayPal and navigate to profile > my selling tools > instant payment notifications 12-click choose IPN settings 13-select the receive IPN messages 14- go to profile > my selling tools > PayPal button language encoding and choose utf-8 with yes 15-click save on whmcs finally, go to setup>product/services> if you have an existing group check to make sure Paypal is selected You are done!

WHMCS changing default currency

how to change the default currency in WHMCS this is recommended when there are not yet any invoices transactions or orders in the system 1-going to setup > payments > currencies 2-click the edit icon 3-currency code: MYI prefix:Malaysia money icon suffix RM or ringgit #note: if any invoices already exist in your system in this currency, editing will change the currency of #those invoices without adjusting the amounts 4- click save you are done!

Configuring Servers

#how to configure a server in WHMCS 1- going to setup > products/server > servers 2-add new server #note: your hosting provider/server admen will provide the necessary details for this page #after fill up the form 4- type choose cpanel username and password #to obtain the access hash login to whm and go to 5-home > customers /Remote access > setup remote access hash #copy the current access key #return to whmcs and paste it into the access hash field 6-click save changes #ensure the server is set as the default server for new accounts your done!

Configuring Products

how to configure a hosting plan in whmcs product are the main method for billing your clients when ordered a product creates an invoices recurring products wil automatically create subsequent invoices on the regular basis monthly, semi-annually, annually and etc… 1-going to setup > products/services > prudact/services #first we must create a new product group to which our product will belong, 2-click create a new group 3-PRODUCT GROUP NAME: hosting packages 4-PayPal 5-save 1-create a products/server 2-products type: hosting plane already exist

Conclusion

Hopefully, you now have the tutorial on how to install and configure WHMCS step by step on ubuntu 20.4.2