Laravel 8 Cronjob在Hostinger共享主机上无法运行求助
排查Hostinger共享主机上Laravel定时任务通过Bash脚本执行失败的问题
指定PHP绝对路径
Hostinger共享主机通常存在多个PHP版本,直接使用php命令可能调用的不是项目依赖的版本。先通过SSH执行which php或查看Hostinger面板的PHP设置获取绝对路径(比如/usr/bin/php8.2或~/bin/php),然后在bash脚本中替换为绝对路径:#!/bin/bash /usr/bin/php8.2 /home/your_username/public_html/artisan schedule:run >> /dev/null 2>&1修正工作目录
Cron执行时默认工作目录并非项目根目录,需在脚本中先切换到项目根目录再执行命令:#!/bin/bash cd /home/your_username/public_html /usr/bin/php8.2 artisan schedule:run >> /dev/null 2>&1添加日志输出排查错误
将命令输出重定向到日志文件,便于查看执行报错:#!/bin/bash cd /home/your_username/public_html /usr/bin/php8.2 artisan schedule:run >> /home/your_username/logs/cron.log 2>&1执行后查看
cron.log中的内容,通常能找到任务失败的具体原因(如环境变量读取失败、权限不足等)。检查文件权限
- 确保
artisan文件具备执行权限:执行chmod +x /home/your_username/public_html/artisan - 确保
.env文件权限正确(避免过度开放):执行chmod 644 /home/your_username/public_html/.env
- 确保
SSH直接验证命令
通过SSH登录主机,切换到项目根目录,直接执行/usr/bin/php8.2 artisan schedule:run,观察是否有报错信息,这是最直接的排查方式。
内容的提问来源于stack exchange,提问作者Web Star
相关产品推荐
相关产品推荐

