如何使用cPanel在托管服务器中添加Laravel Cronjob
如何在cPanel托管服务器中添加Laravel Cronjob
嘿,我来一步步带你搞定在cPanel托管服务器上添加Laravel定时任务的事儿,其实没那么复杂,跟着下面的步骤来就行~
核心前提
Laravel的所有定时任务都是通过php artisan schedule:run这个命令触发的,官方要求每分钟运行一次这个命令,这样Laravel的调度器才能按时执行你定义的各种任务。
具体操作步骤
- 登录你的cPanel面板:找到托管商提供的cPanel登录链接,输入账号密码进入后台。
- 找到Cron Jobs工具:在cPanel的「高级」或「高级工具」分类下(不同托管商布局略有差异,但工具名称肯定是Cron Jobs),点击进入。
- 设置执行频率:在「添加新的Cron任务」区域,选择「通用设置」里的「每分钟」,或者手动在分、时、日、月、周的输入框里都填
*(也就是* * * * *,代表每分钟执行一次)。 - 编写执行命令:这里要注意必须使用完整路径,不能直接写
php artisan schedule:run,否则cPanel找不到文件。- 先获取PHP的完整路径:可以在cPanel的「选择PHP版本」页面查看,或者通过终端执行
which php命令获取,比如常见的路径是/usr/local/bin/php或/opt/cpanel/ea-php82/bin/php(根据你的PHP版本调整)。 - 再获取Laravel项目中
artisan文件的完整路径:比如你的项目放在public_html/my-laravel-project下,那路径就是/home/你的cPanel用户名/public_html/my-laravel-project/artisan。 - 把两者拼接起来,再加上日志处理(可选),最终命令类似:
👉 解释一下:/usr/local/bin/php /home/your-cpanel-username/public_html/my-laravel-project/artisan schedule:run >> /dev/null 2>&1>> /dev/null 2>&1是用来屏蔽命令输出,避免每次执行都收到邮件通知;如果想记录日志,可以改成:/usr/local/bin/php /home/your-cpanel-username/public_html/my-laravel-project/artisan schedule:run >> /home/your-cpanel-username/public_html/my-laravel-project/storage/logs/cron.log 2>&1
- 先获取PHP的完整路径:可以在cPanel的「选择PHP版本」页面查看,或者通过终端执行
- 保存任务:填写完所有内容后,点击「添加新的Cron任务」按钮,你的Laravel Cronjob就设置好了。
关键注意事项
- 路径一定要准确:如果任务没生效,先检查PHP路径和
artisan文件路径是否正确,可以通过cPanel的文件管理器查看完整路径。 - 测试任务:可以在
App\Console\Kernel.php里添加一个简单的测试任务,比如写入日志:
等待一分钟后,查看protected function schedule(Schedule $schedule) { $schedule->call(function () { \Log::info('Cron任务执行成功!'); })->everyMinute(); }storage/logs/laravel.log,如果有这条日志,说明Cron运行正常。 - 邮件通知设置:如果不想收到Cron执行的邮件,可以在Cron Jobs页面的「Cron邮件」区域设置一个邮箱,或者用上面的命令屏蔽输出。
内容的提问来源于stack exchange,提问作者Theodory Faustine
相关产品推荐
相关产品推荐

