You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Laravel 5.5在GoDaddy共享主机上Cron Job无法运行求助

解决GoDaddy共享主机上Laravel 5.5 Cron Job不运行的问题

我之前帮朋友排查过类似的GoDaddy Laravel Cron问题,大概率是这几个地方没配置对,你一步步来检查:

1. 确保Cron命令使用绝对路径(最常见的坑)

GoDaddy共享主机的PHP和Laravel项目路径都需要用绝对路径,不能用相对路径。你需要:

  • 先找到你的PHP可执行文件绝对路径:可以通过创建一个phpinfo.php文件(内容<?php phpinfo(); ?>),访问后找到_SERVER["PATH"]里的PHP路径;或者如果能SSH登录,运行which php直接获取。
  • 然后构造正确的Cron命令,格式如下:
/path/to/your/php /home/your_cpanel_username/public_html/artisan schedule:run >> /dev/null 2>&1

替换/path/to/your/php为实际的PHP路径,your_cpanel_username为你的GoDaddy cPanel用户名。

2. 检查Kernel.php中的代码错误

你写的调度任务里,new Video;可能存在命名空间问题:

  • 打开app/Console/Kernel.php,顶部需要引入Video模型的命名空间:
use App\Video;

如果没加这行,Laravel会找不到Video类,导致任务静默失败。

3. 开启Cron日志排查错误

把Cron的输出重定向到日志文件,而不是/dev/null,这样能看到具体错误:
修改Cron命令为:

/path/to/your/php /home/your_cpanel_username/public_html/artisan schedule:run >> /home/your_cpanel_username/public_html/storage/logs/cron.log 2>&1

等待几分钟后,查看storage/logs/cron.log文件,里面会显示任务运行的详细信息,比如权限不足、类找不到等错误。

4. 验证环境变量和权限

  • 确保你的.env文件权限正确,设置为644(不要设置成777,会有安全风险),Cron进程需要能读取这个文件来加载Laravel环境配置。
  • 如果你的项目用了生产环境,在Cron命令后加上--env=production,确保加载正确的环境配置:
/path/to/your/php /home/your_cpanel_username/public_html/artisan schedule:run --env=production >> /dev/null 2>&1

5. 手动测试Cron命令

如果能SSH登录到GoDaddy主机,直接运行你构造的Cron命令,看实时输出:

/path/to/your/php /home/your_cpanel_username/public_html/artisan schedule:run

如果命令运行失败,会直接显示错误信息,比如“Class 'Video' not found”或者“Permission denied”,这样能快速定位问题。

6. 确认GoDaddy Cron的时间设置

在GoDaddy的Cron Job设置界面,确保时间配置为每分钟执行:

  • 分钟:*
  • 小时:*
  • 日:*
  • 月:*
  • 星期:*

按照上面的步骤排查,基本能解决大部分GoDaddy共享主机上Laravel Cron不运行的问题。

内容的提问来源于stack exchange,提问作者Khawar Raza

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.22 08:45:51