My hoster technically allows cronjob but with the limitation to php files.
There is no way to access the crontab from a console.
I can set it up in the administration UI only and I need to provide a path to a php file. My ssh user has now access to the crontab. php artisan
commands are working.
How can I set the recommended * * * * * cd /path-to-your-project && php artisan schedule:run >> /dev/null 2>&1
in a php file? Or more strict:
How can I run php artisan schedule:run >> /dev/null 2>&1
from a php file, so that I can provide this file to the administration UI?
So on the basis that you can only execute a php script in the particular cron setup of your host;
You can create a file as follows to only run the schedule:run
artisan command;
#!/usr/bin/env php
<?php
define('LARAVEL_START', microtime(true));
/*
|--------------------------------------------------------------------------
| Register The Auto Loader
|--------------------------------------------------------------------------
|
| Composer provides a convenient, automatically generated class loader
| for our application. We just need to utilize it! We'll require it
| into the script here so that we do not have to worry about the
| loading of any of our classes manually. It's great to relax.
|
*/
require __DIR__.'/vendor/autoload.php';
$app = require_once __DIR__.'/bootstrap/app.php';
/*
|--------------------------------------------------------------------------
| Run The Artisan Application
|--------------------------------------------------------------------------
|
| When we run the console application, the current CLI command will be
| executed in this console and the response sent back to a terminal
| or another output device for the developers. Here goes nothing!
|
*/
$kernel = $app->make(Illuminate\Contracts\Console\Kernel::class);
$input = new Symfony\Component\Console\Input\ArgvInput;
$status = $kernel->call('schedule:run', [], new Symfony\Component\Console\Output\ConsoleOutput);
/*
|--------------------------------------------------------------------------
| Shutdown The Application
|--------------------------------------------------------------------------
|
| Once Artisan has finished running, we will fire off the shutdown events
| so that any final work may be done by the application before we shut
| down the process. This is the last thing to happen to the request.
|
*/
$kernel->terminate($input, $status);
exit($status);
This is adapted from the artisan
file itself but removes the ability to specify anything other than schedule:run
create this file as scheduler.php
in the root of your project and then call this from your hosts cron setup with * * * * * as the time pattern (every minute). You might need to prefix it with the path to your project.