2
votes

Iam trying to develop a cron job for a command to send email. I am completely new to cron jobs so I dont really know how it works.

Trying the command by myself in the console works perfectly. But when a set a cron job in CPANEL its not workingrs. I am using Laravel 5, can anyone help please?

Thanks!

My cron job: php /home/reporting/public_html/bsk/artisan schedule:run >> /dev/null 2>&1

My Kernel.php

enter image description here

My class emailUser

enter image description here

2
Have you tried running the command directly from your terminal to see if there are any errors?Jerodev
You might have to set the absolute path for php.Rwd
Wouldn't it be easier if you copy&paste text code, instead of posting links to pictures?... Those links will expire sooner or later :(סטנלי גרונן
This link stackoverflow.com/questions/132971/… might be usefull. Also need to provide full path to PHP in your CRON command.Viktor
@Jerodev yes I already try command by the terminal and it works perfectlysara

2 Answers

1
votes

In Cpanel: (cPanel & WHM version 62)

Follow the menus : HomeAdvancedCron Jobs and add :

php /home/reporting/public_html/bsk/artisan schedule:run >> /dev/null 2>&1

For Reference : /home/user/public_html/index.php

On a Unix/Linux Server: use the cmdline crontab -e to enter the cron editor and add the line :

* * * * * php /var/www/project/artisan schedule:run >> /dev/null 2>&1
0
votes

Cron Job will not work, if you are about to schedule the command as once a day (i.e., 00:00) iff, same time is not reflected in a $schedule->command(); object

If the commands were incorrect, I used to get this warning in my Email as

PHP Warning:  Module 'magickwand' already loaded in Unknown on line 0
Status: 404 Not Found
X-Powered-By: PHP/5.6.37
Content-type: text/html; charset=UTF-8

No input file specified.

In Kernel.php you should specify

/**
 * Define the application's command schedule.
 *
 * @param  \Illuminate\Console\Scheduling\Schedule  $schedule
 * @return void
 */
protected function schedule(Schedule $schedule)
{
    $schedule->command('SyncAPIOrders:orders')
               ->timezone('Asia/Kolkata')
               ->dailyAt('00:00');
}

You should add the command from the cPanel server as

/usr/local/bin/php /home/xyz/public_html/artisan schedule:run 1>> /home/xyz/public_html/log_laravel 2>&1

This will keep all the logs in /home/xyz/public_html/log_laravel

Running scheduled command: '/opt/cpanel/ea-php71/root/usr/bin/php' 'artisan' SyncAPIOrders:orders > '/dev/null' 2>&1