General Troubleshooting StepsRegardless of whether you’re troubleshooting a new install of WHMCS, existing install, or a post migration site, there area few steps you can take to make troubleshooting easier.
- Check configuration files, ensure that cron directories are valid, and match up between config files (cron config.php and whmcs configuration.php)
- Check directory and file permissions. These directories must be owned by the cpanel user, and have at least 750 permissions.
- Check crontab and ensure that the crons are actually created / running.
WHMCS Cron Related Configuration FilesThere are two main configuration files which contain cron related settings for WHMCS. Make sure these two files are using the proper directories, ideally ones that match up with each other. If you detect differences in the paths, odds are that’s where the issue is. The two directories where WHMCS cron configuration files are stored are:
If WHMCS was customized during install the paths below may not exist, or may have a different name.
WHMCS Cron configuration file – config.phpThere’s a noteworthy configuration file located under the crons directory called “config.php”. There’s one variable specified here “$whmcspath”, that should point to the directory where WHMCS is installed. If you are migrating an existing WHMCS site, be sure to modify this file to point to the new whmcs install location (if cpanel user / location changed). You can view the WHMCS cron config file by running this command (replace $user with actual cpanel user)
cat /home/$user/whmcsdata/crons/config.phpThere should be one setting in this file, which should point to the WHMCS install directory
$whmcspath = '/home/$user/public_html/';
WHMCS General configuration file – configuration.phpIn addition to the cron config file, there’s one more configuration file to cover – the main WHMCS configuration.php. Run the command below to view this file.
If you installed WHMCS in a directory under public_html you will need to adjust the command.
cat /home/$user/public_html/$whmcs_dir/configuration.phpYou should see a “$crons_dir” variable in this file.
$crons_dir = '/home/$user/whmcsdata/crons/';
cPanel Cron SetupOnce you’ve confirmed that the cron directory paths are correct, and set in both config files, we will want to make sure there’s a cron set up for that user. If no cron is set up for the user, WHMCS will notify you that the cron status is not ok.
- To set up a cron, log into cPanel.
- Scroll to the cron jobs section. This can be found under the “advanced” section inside of cPanel.
- Click on the icon to enter the Cron Jobs control panel.
Adding a new cronBefore you add a new cron, look at the existing entries, if there’s already some for WHMCS, verify that the command is using the proper path to cron.php. If you do not see any crons in place, you will want to create a new one that looks like the screenshot below. Replace “$user” with the actual cpanel user. Once you click “add new cron job” you should be all set. If you set the cron to run every 5 minutes, take a quick break, then log into the WHMCS admin area to check on the status.
Verifying WHMCS Automation Status
- To check the last time WHMCS ran a cron, log into the WHMCS admin area, hover your mouse over the Setup tab. A drop-down menu will appear, select Automation Settings.
- At the very top of the automation settings page you will see a red or green box with a Cron status. If the box is green it means you’re all set!
- If the box is red, then I suggest reviewing this article and checking the 3 main areas outlined at the start of this article.
Softaculous One Click Installer
WHMCS Data DirectoryWhen you install WHMCS via Softaculous there will be a Data Directory section near the top of the page. The WHMCS data directory stores the following: