我正在使用namecheap托管我的laravel应用程序,我也遵循了https://www.namecheap.com/support/knowledgebase/article.aspx/9453/29/how-to-run-scripts-via-cron-jobs中的所有说明。然而,在cpanel的cron作业选项卡中设置我的cron作业后,我在我的电子邮件中收到通知,但是artisan命令似乎没有执行,因为我的数据库保持不变。我试图在artisan命令的句柄方法中回显一个值用于测试目的但是没有任何输出,我仍然在我的电子邮件中收到通知,如so => '运行预定命令:' / opt / alt / php70 / usr / bin / php' '人员'停用:广告> ' /home/agrodqkc/applications/agroexpresslink/app/console/log.txt' 2&& 1&'
这是我每分钟的cron命令=> / usr / local / bin / php / home / agrodqkc / applications / agroexpresslink / artisan schedule:run
我的kernel.php文件:
<?php
namespace mazee\Console;
use Illuminate\Console\Command;
use Illuminate\Console\Scheduling\Schedule;
use Illuminate\Foundation\Console\Kernel as ConsoleKernel;
class Kernel extends ConsoleKernel
{
/**
* The Artisan commands provided by your application.
*
* @var array
*/
protected $commands = [
// Commands\Inspire::class,
Commands\maz::class,
Commands\deactivateads::class,
];
/**
* Define the application's command schedule.
*
* @param \Illuminate\Console\Scheduling\Schedule $schedule
* @return void
*/
protected function schedule(Schedule $schedule)
{
// $schedule->command('inspire')
// ->hourly();
//$schedule->command('maz:do')->everyMinute()->sendOutputTo(base_path().'/app/console/log.txt')->emailOutputTo('ewomaukah@yahoo.com');;
$schedule->command('deactivate:ads')->everyMinute()->sendOutputTo( base_path().'/app/console/log.txt');
}
}
答案 0 :(得分:3)
您是否可以显示正在运行的cron命令,因为我认为cron作业设置不正确
如果使用ssh访问服务器并输入crontab -e 要么 您可能有一个专用工具来设置cPanel
中的cronjobsCRON作业应设置如下:
* * * * * /opt/alt/php70/usr/bin/php /home/agrodqkc/applications/agroexpresslink/artisan schedule:run >> /dev/null 2>&1
上述命令将每分钟运行一次,并将搜索计划任务。
答案 1 :(得分:0)
最后,经过几天的挫败,我终于开始工作了,我发现因为laravel应用要求您将应用的公共文件放在public_html文件夹中,而主文件放在public_html之外的单独文件夹中,因此要注册Cron作业,请使用此< / p>
/usr/local/bin/php /home/username/separatefolder/artisan schedule:run >> /dev/null 2>&1