Laravel中.env新增字段致CLI报'command_not_found'的原因及解决办法
Laravel执行Artisan命令时.env环境变量报错的原因与解决
问题原因
你的错误源于**.env文件的语法不符合Shell解析规范**。当通过Sail执行Artisan命令时,容器内的Shell会直接解析.env文件内容,而你写的SERVICE_USERNAME = "user"这种带空格的赋值方式,会被Shell误判为「执行SERVICE_USERNAME命令,传入=和"user"作为参数」——系统中不存在这个命令,因此触发「command not found」报错。
虽然Laravel的env()函数能兼容这种带空格的写法,但Shell环境对.env的语法要求更严格,必须遵循无空格的赋值规则。
解决方法
修正.env文件里的变量赋值格式,去掉变量名与等号之间的空格,改用标准的.env语法:
SERVICE_USERNAME="user" SERVICE_PASSWORD="password" SERVICE_SITE="sandbox.example.org"
修改完成后重新执行Artisan命令,报错就会消失。
额外提示:如果变量值包含空格或特殊字符,必须用引号包裹;普通字符串的引号可省略,但统一保留引号会让格式更规范。
内容的提问来源于stack exchange,提问作者Aliden
相关产品推荐
相关产品推荐

