如何在Hostinger上为Laravel 11网站创建有效Cron Job?
Laravel 11 在 Hostinger 上配置 Cron Job 不生效的解决方法
核心配置要点
Hostinger 上的 Cron Job 必须使用绝对路径,且要匹配项目的 PHP 版本,这是最常见的失效原因。
1. 正确的 Cron 命令格式
Laravel 任务调度依赖每分钟触发一次 schedule:run 命令,因此 Cron 表达式必须设为 * * * * *。命令模板如下(替换成你的实际信息):
* * * * * /usr/bin/php8.2 /home/u123456789/public_html/artisan schedule:run >> /dev/null 2>&1
/usr/bin/php8.2:Hostinger 服务器对应 PHP 版本的绝对路径(可在面板的「PHP 配置」里查看,比如 8.1/8.3)/home/u123456789/public_html/artisan:你的 Laravel 项目artisan文件的绝对路径(u123456789替换为你的 Hostinger 用户名)
任务定义排查
确认 routes/console.php 中的任务注册正确,示例:
use Illuminate\Support\Facades\Schedule; // 示例:每天凌晨执行的任务 Schedule::call(function () { // 你的业务逻辑代码 })->daily();
注意:如果任务设置了特定执行频率(比如 daily()),需等待对应时间才会触发,不要误以为是 Cron 失效。
手动验证任务可用性
SSH 登录服务器后,直接运行以下命令测试任务是否能正常执行:
/usr/bin/php8.2 /home/u123456789/public_html/artisan schedule:run
如果输出显示 Running scheduled command: ...,说明任务本身没问题,问题出在 Cron 配置;如果报错,根据错误信息修复(比如权限不足、PHP 扩展缺失)。
权限与日志排查
- 文件权限修复:确保
artisan文件有执行权限
chmod +x /home/u123456789/public_html/artisan
同时确认项目的 storage、bootstrap/cache 目录对 Hostinger 用户有读写权限。
- 查看执行日志:
- Hostinger Cron 日志路径:
/home/u123456789/logs/cron.log(替换用户名) - 也可在 Cron Job 设置中勾选「发送邮件通知」,将执行结果发送到你的邮箱,快速定位错误(比如路径错误、PHP 版本不兼容)
- Hostinger Cron 日志路径:
内容的提问来源于stack exchange,提问作者harshil kachhia
相关产品推荐
相关产品推荐

