Skip to content

Fix a cron job that isn't running

A cron job that “doesn’t run” almost always runs somewhere — it just fails silently because cron’s environment isn’t the same as your shell. Here’s how to find out why.

First: is it running at all?

Add logging so you can see what happens. Append this to the command:

>> /home/orbix-you/cron.log 2>&1

Wait for the next scheduled run and read the log. No log file at all? The job isn’t firing — check it’s enabled in the panel’s Cron section and the schedule is valid.

The usual causes

1. Relative paths. Cron starts in your home directory, not your project. php cron.php won’t find the file. → Use full paths: php /home/orbix-you/example.com/cron.php.

2. Command not found. Cron has a minimal PATH, so a bare php, node, or composer may not resolve. → Use the full binary path, or the project’s local one (e.g. .venv/bin/python).

3. Wrong environment. Things that work in your shell (env vars, PHP version, loaded profile) may differ under cron. → Set needed env vars in the command itself, and use the explicit interpreter for the right PHP version.

4. Permissions. The script isn’t executable, or the job can’t read/write a file. → Check permissions; the job runs as your account, so it’s bounded to what that user can access.

5. The schedule is wrong. 0 0 * * * is once a day, not every minute. Re-read the cron cheat sheet.

Debug it directly

Run the exact command from the web terminal to see errors immediately:

Terminal window
php /home/orbix-you/example.com/cron.php

If it works here but not on schedule, the cause is almost certainly a path or environment difference (causes 1–3) — the log file will confirm which.

Framework schedulers

Using Laravel? The scheduler is a single cron line — if it isn’t running, same rules apply. See run the Laravel scheduler.


Running OrbixPanel? Cron jobs run as your own account, from the panel — logged and easy to test. OrbixPanel.com → — the free, self-hosted, AI-powered hosting control panel.