WHBMP

Setting up the cron job

Oct 15, 2026

WHBMP has no background daemon. Everything that happens on a schedule is started by one cron job that runs Laravel's scheduler. Without it, nothing automatic happens.

What runs from it

  • payment reminders and overdue notices, late fees, suspending and terminating overdue services, domain renewal reminders and ticket clean-up (the daily automation, at the time you set in Automation Settings)
  • the daily license check, currency rate sync, affiliate commission release, server account sync and log clean-up
  • the hourly check for updates, and the daily automatic updates if you switched them on
  • the hourly metering of VPS and dedicated servers sold by the hour, and the daily usage invoices (Hourly billing)
  • the queue worker that sends mail and other queued work
  • the file-storage mover and, if installed, the S3 backup
  • recovery of an update that was cut off halfway

The command

Run schedule:run every 5 minutes (every minute also works):

*/5 * * * * /usr/bin/php /home/USER/public_html/artisan schedule:run >> /dev/null 2>&1

The exact line for your server, with the right PHP path, is shown at the top of Settings > Automation Settings. Copy it from there.

cPanel

  1. Open Cron Jobs in cPanel.
  2. Under Add New Cron Job choose Once Per Five Minutes (*/5 * * * *).
  3. Paste the command from Automation Settings. On cPanel with EasyApache it looks like /opt/cpanel/ea-php83/root/usr/bin/php /home/USER/path/artisan schedule:run >> /dev/null 2>&1.
  4. Save.

Use the command-line PHP binary, not the one PHP-FPM or LiteSpeed uses. A web PHP binary (php-fpm, lsphp) cannot run artisan.

CloudPanel or any Linux server

Add the job to the crontab of the site user, not root, so created files keep the right owner:

sudo crontab -u SITEUSER -e
*/5 * * * * php8.3 /home/SITEUSER/htdocs/your-domain.com/artisan schedule:run >> /dev/null 2>&1

In CloudPanel you can also add it under the site's Cron Jobs tab.

Check that it works

Open Settings > Automation Settings. The checklist shows whether a run has ever been recorded, whether it runs often enough and whether the daily task ran today. System > Automation Report lists what each run did.

If it shows "No run has ever been recorded", the job is not running. Check that:

  • the PHP path is the command-line PHP of the right version,
  • the path to artisan is correct,
  • the job belongs to the user that owns the site files,
  • exec and proc_open restrictions on the host do not block the job (they are not needed for WHBMP itself).

To see errors, run the command by hand over SSH without the >> /dev/null part.

Do not run it twice

Never put the same cron job on two servers for one installation. Both would send the same invoices and emails. When you move servers, remove the job from the old one (see Moving to a new server).

Powered by WHBMP