WHMCS is the de-facto billing and provisioning platform for hosting resellers. Installed on your reseller hosting account, it automates customer signups, recurring billing, account creation in WHM, ticket support, and much more. This article walks through installing WHMCS and the first-day configuration that gets you actually selling.
Two install options
Option A: Softaculous (easiest)
- Log in to cPanel of the account where you want WHMCS to live.
- Open Softaculous Apps Installer.
- Search for WHMCS.
- Click Install Now.
- Configure:
- Choose Domain: a subdomain you'll use for billing (most resellers use
billing.yourbrand.comormy.yourbrand.com) - In Directory: leave blank to install at the root of that subdomain
- Database details: Softaculous creates these for you
- WHMCS License: enter your WHMCS license key (purchased separately from whmcs.com)
- Admin Username/Password: use a strong unique password; admin is the most powerful account in WHMCS
- Choose Domain: a subdomain you'll use for billing (most resellers use
- Click Install.
About 2 minutes later, WHMCS is running.
Option B: Manual install
Use this if you want a specific WHMCS version or to install in a non-standard location:
- Download WHMCS from download.whmcs.com (you need an active license).
- Upload the ZIP to your account via cPanel File Manager.
- Extract into the desired directory.
- Create a database and user via cPanel MySQL Databases.
- Visit
https://yoursubdomain.com/install/install.phpand follow the wizard. - After install completes, delete the
install/directory immediately. Leaving it in place is a security risk.
Day-1 configuration checklist
1. Configure WHMCS to talk to your WHM server
This is what makes provisioning automatic. WHMCS → System Settings → Servers → Add New Server.
- Name: something descriptive like "ipxcore-reseller-1"
- Hostname: the WHM hostname from your reseller welcome email
- IP Address: the IP from the welcome email
- Type: cPanel
- Username: your reseller cPanel username
- Access Hash or Password: generate an access hash in WHM (Cluster/Remote Access → Setup Remote Access Key) and paste it here. More secure than using your password directly.
- Secure (SSL): ON
- Port: 2087 (the WHM SSL port)
Save and click Test Connection. Should return success.
2. Create products that match your WHM packages
WHMCS → System Settings → Products/Services.
- Create a Product Group (e.g., "Shared Hosting").
- For each WHM package you have, add a corresponding WHMCS Product:
- Module: cPanel
- Server group: the one containing your WHM server
- Package Name: the exact name of the WHM package
- Pricing: monthly, quarterly, semi-annual, annual rates
- Save.
From now on, when a customer orders this product and pays, WHMCS automatically creates a cPanel account for them on your reseller server.
3. Configure payment gateways
See our payment gateways article for the details. At minimum: Stripe, PayPal, and "Mail-in Payment" (for customers who want to pay via check).
4. Configure email templates
WHMCS → System Settings → Email Templates. The defaults are bland. Customize at minimum:
- New Account Information (sent when a customer's account is created) — add your support contact and links to docs
- Invoice Created — add a friendly note and your business name
- Account Suspension and Account Termination — lay out the unsuspend/restore process
5. Set up automation cron
WHMCS's automation depends on a cron job that runs every 5 minutes. Set it up:
- cPanel → Cron Jobs.
- Add:
*/5 * * * * /usr/local/bin/php -q /home/USER/public_html/billing/crons/cron.php > /dev/null 2>&1 - Replace
USERand the path to match your install.
Without this cron, invoices won't auto-generate, suspensions won't fire, and reminders won't send.
6. Configure General Settings
WHMCS → System Settings → General Settings. Step through every tab and configure:
- Company name, logo, contact info
- Default currency
- Time zone
- Tax/VAT settings (if applicable)
- Domain registrar settings (if you're reselling domains)
- Anti-fraud (MaxMind minFraud is free for low volume)
7. Lock down admin access
- Change the admin URL from
/adminto something custom (set inconfiguration.php:$customadminpath = 'mybackend';). - Enable 2FA on every admin account.
- Restrict admin login by IP if you have a stable office IP.
Hardening checklist post-install
- Delete
install/directory. - Set
configuration.phppermissions to 400. - Move
attachments/,downloads/, andtemplates_c/outside the web root if possible (WHMCS docs explain how). - Enable HTTPS sitewide.
- Schedule daily database backups.
Common pitfalls
- "License key invalid." WHMCS licenses are tied to specific IPs. If you migrate, log into the WHMCS portal and reissue the license to the new IP.
- "Test Connection failed" with WHM. Either the access hash is wrong or your reseller server has API access disabled. Regenerate the hash from WHM.
- Customer orders but no cPanel account is created. The Product is misconfigured (wrong package name, server, or module). Check the activity log for the actual error.
- Cron isn't running. Test by running the cron command manually via SSH. Most issues are wrong PHP path (
/usr/local/bin/phpvs/usr/bin/php).