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

Cron执行Shell脚本切换目录运行php artisan报错:目录不存在

解决Cron执行脚本切换Laravel目录失败的问题

你脚本里的cd路径写错了,少了用户根目录前缀/home/u341967117,Cron执行时的环境变量和登录shell不一样,没法自动补全这个路径,所以才会提示目录不存在。

直接把切换目录的命令改成完整绝对路径即可:

#!/bin/bash
# 用完整绝对路径切换到Laravel项目根目录
cd /home/u341967117/domains/unieschools.com/public_html/ngit
# 可添加判断,确保切换目录成功再执行后续命令
if [ $? -eq 0 ]; then
    echo "当前目录: $PWD"
    # 执行php artisan命令时建议用php绝对路径,可通过`which php`查询实际路径
    /usr/bin/php artisan your-command
else
    echo "切换目录失败"
    exit 1
fi

额外注意两点:

  • Cron的PATH环境变量范围有限,执行php命令最好用绝对路径,你可以在登录shell中执行which php得到php的完整路径,替换示例中的/usr/bin/php
  • 确保脚本有可执行权限:执行chmod +x hello.sh

内容的提问来源于stack exchange,提问作者Monday Bulus

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.06 09:01:19