Skip to content
Shahid Malla

WHMCS services

WHMCS Installation and Setup Service

I install and configure WHMCS for hosting companies and service businesses. You get a working system, not just an unpacked folder: server requirements checked, cron running, SSL on, cPanel/WHM connected, billing rules set, emails reviewed, test orders placed and a written handover.

By Shahid Malla, WHMCS developer and hosting infrastructure engineer · Updated

What does a complete WHMCS installation include?

A complete installation is a billing system that has been configured, connected and tested with real order flows, not just a WHMCS folder that loads in a browser. The table shows what I configure and what stays your decision.

AreaWhat I configureWhat you decide
Server and PHPPHP version, ionCube Loader, extensions, SSL, file permissions, cronWhich server or provider, and who holds root access
Writable foldersPaths for attachments, downloads and compiled templates, set in configuration.phpWhere backups are stored and how long they are kept
ProductsGroups, products, module settings, welcome emails, order form linksNames, descriptions, prices, billing cycles, setup fees
Billing automationInvoice generation days, reminders, overdue notices, suspension and termination timingHow strict your policy is: grace days, late fees, when to terminate
Tax and currenciesTax rules, currency list and exchange rate handlingWhich rates apply to you, confirmed with your accountant
PaymentsGateway modules connected and tested in sandbox modeWhich gateways, and opening the merchant accounts
DomainsRegistrar module, TLD list and pricing structureWhich registrar and what markup you apply
Fraud screeningFraud module connected, score threshold setHow many orders you will review by hand
Support deskDepartments, email piping or POP/IMAP import, notification rulesDepartment names, who answers, response targets
Email and legal textTemplates checked for broken merge fields, sender address, SMTPWording, tone, terms of service and privacy policy

Which server requirements are checked before WHMCS is installed?

I check that the server runs a PHP version supported by your WHMCS release, has the ionCube Loader enabled, and has the PHP extensions WHMCS needs. Skipping this check is the most common reason a fresh install shows a blank page.

The extensions usually needed include cURL, GD, mbstring, OpenSSL, PDO MySQL and XML, plus IMAP if you want tickets imported from a mailbox. The exact list depends on the WHMCS release, so I compare against the official requirements, not memory. I read the PHP version and Loader from php -v, then check the web PHP separately. On cPanel servers the command-line PHP and the site's PHP can be different versions, and cron uses the command-line one.

Why move attachments, downloads and templates_c outside the web root?

These folders are writable by the web server, and anything writable inside the web root is a larger target than it needs to be. Moving them out means a misconfiguration cannot serve their contents directly.

WHMCS lets you set their paths in configuration.php, using $attachments_dir, $downloads_dir and $templates_compiledir. I create the folders above the public directory, set ownership so the web user can write but other accounts cannot read, update the paths, then upload a test ticket attachment to prove it works. I can also rename the admin folder with $customadminpath if you want one more layer, though I treat that as a small extra, not a defence on its own. A deeper review of this kind is covered in the WHMCS security audit.

How do I set up the WHMCS cron job?

You set up one cron job that runs crons/cron.php every five minutes, using the PHP binary that matches your site. Invoice creation, payment reminders, suspensions, terminations and domain syncs all depend on it.

The line looks like */5 * * * * php -q /path/to/whmcs/crons/cron.php. On servers with several PHP versions I put the full binary path in, not plain php. If you import tickets from a mailbox, I also confirm how that import is scheduled on your WHMCS release. I run the command by hand once, read the Activity Log and the Automation Status page, and only then call the cron job finished. Without that check, a broken cron can run for weeks before anyone notices.

How do I connect WHMCS to cPanel/WHM?

You add the server in the WHMCS admin area as a cPanel server and authenticate with a WHM API token. I create the token in WHM with only the permissions WHMCS needs, then run the built-in connection test.

Three details cause most failures. The server's firewall must allow the WHMCS server's IP address. The package name in the product's module settings must match the WHM package name exactly, and reseller packages carry the reseller's username as a prefix. If you connect over SSL, certificate and hostname problems on the WHM server are another common cause of connection errors, so I check both. For the server side of this, see cPanel and WHM setup, and the official reference is at docs.cpanel.net.

Which billing settings matter most before launch?

Suspension and termination timing matter most, because they decide when a customer loses service and when their data is deleted. I set them from your written policy, not from defaults.

  • Invoice generation: how many days before the due date renewal invoices are created.
  • Reminders: the unpaid reminder and the first, second and third overdue notices.
  • Suspension and termination: days after due date, and whether either runs automatically.
  • Tax and currency: inclusive or exclusive pricing, tax rules by region, and the base currency.
  • Fraud: which orders are held for review before an account is created.

Before launch I shorten these periods on a test service so the whole sequence can be watched in one afternoon, then restore the real values.

How are test orders handled before launch?

I place full test orders through the public order form with gateways in sandbox mode and follow each one from basket to a working service. Then I force a suspension, an unsuspension and a termination. This is the only test that proves the pieces work together.

Each run checks that the invoice is created, the payment is recorded, the module creates the account, the welcome email arrives and the customer can log in. I also read the cron output and send test emails to the major mailbox providers. Failures are fixed and the order is run again. If you are moving an existing system instead of starting a new one, see WHMCS migration.

What does an installation not cover?

I do not install nulled or unlicensed WHMCS, and I do not edit core files. I do not open merchant accounts or registrar accounts for you, and I do not choose your tax rates or write your legal text. Gateways approve merchants on their own terms, so I cannot promise an approval. If your gateway needs a custom module, that is quoted separately under payment gateway integration.

Who this is for

  • New hosting companies setting up billing for the first time
  • Agencies and freelancers who want to sell recurring services through WHMCS
  • Owners who bought a license and got stuck partway through configuration
  • Businesses replacing a spreadsheet or an old invoicing tool

What is included

  • Check of PHP version, ionCube Loader and required extensions before installing
  • attachments, downloads and templates_c moved outside the web root
  • Cron job created with the right PHP binary and tested by hand
  • SSL for the client area and admin area
  • cPanel/WHM server module connected with an API token
  • Products, billing automation, tax, currencies and order forms configured
  • Registrar, payment gateways, fraud screening and support departments connected
  • Email templates reviewed, test orders placed and a written handover note

How the work runs

  1. 1

    Check

    I confirm the server meets the requirements of the WHMCS release you will install, and that I have the access I need. Gaps are listed before I start.

  2. 2

    Install and secure

    I install WHMCS, move the writable folders out of the web root, set file permissions, add SSL and create the cron job. The site stays hidden from customers until it passes testing.

  3. 3

    Configure

    I set up products, billing rules, tax, currencies, gateways, registrar, server connections, support departments and email, using decisions you give me in a short checklist.

  4. 4

    Test orders

    I place orders end to end in test mode, force a suspension and a termination, and watch a full cron run. Anything that fails gets fixed and tested again.

  5. 5

    Hand over

    You get written notes on every setting I chose and why, plus two weeks of support while real customers start to arrive.

Frequently asked questions

How long does a WHMCS installation take?

Typically two to five working days, depending on scope. A plain install with one gateway and a handful of products sits at the short end. Many products, several gateways, multiple currencies or a custom order form push it longer. Most of the time goes on configuration and test orders, not on the install itself.

Do I have to buy the WHMCS license first?

Yes, you need a valid WHMCS license for the server and domain where it will run. I do not install nulled or cracked copies. If you are still choosing a plan, I can talk through which license plan fits your size before you buy, and then install once it is active.

Which server do I need?

WHMCS needs a web server stack with a PHP version supported by the release you choose, the ionCube Loader and a MySQL or MariaDB database. If you sell hosting, WHMCS also needs a server to provision to, most often cPanel/WHM. If you have no server yet, I can advise on one. I am CTO at ElySpace, a hosting company, Technical Lead at Fada.cloud and a backend developer for Nuco Cloud, so weigh any provider advice from me with that in mind.

Can you set up my products and prices for me?

I build the product structure, module settings and order forms, but you decide names, prices, billing cycles and resource limits. I send a short checklist so decisions are made once, in writing, instead of being changed halfway through. I can also suggest typical structures if you are starting from nothing.

Will I be able to manage WHMCS myself afterwards?

Yes. The handover note lists every setting I chose, where it lives in the admin area and why. It also shows how to run the cron job by hand and where to look when an invoice or an email does not appear. If you want ongoing help, support is available separately.

What happens if the installation goes wrong?

I install before the site is public, so a failure should not reach customers. Each stage is tested, and a backup is taken before configuration begins. If something breaks, I restore the last good state and fix the cause. Nothing goes live until the test orders pass.

Related services

Ready to talk about your project?

Send the details and I reply within one business day with questions, an estimate and a plan.