Laravel 5.8,工匠命令错误:由于名称无效,无法解析 dotenv 文件

Abd*_*yar 15 shared-hosting laravel-5.8 laravel-artisan phpdotenv

这个问题只发生在我的共享主机上的 Laravel 5.8 上。

它在我与 Laravel 5.7 的共享主机中运行良好。

它在我的本地环境中使用 Laravel 5.8 运行良好。

问题是:

每次我运行 php artisan 命令(仅在我与 Laravel 5.8 的共享主机上)时,我都会收到此错误

环境文件无效!由于名称无效,无法解析 dotenv 文件。

在 [APP_NAME] 上失败。

我的 .env 第一行是: APP_NAME=rased

更新到 Laravel 5.8 后,我的网站也变成了一个白色的空白页面!

小智 26

这是与解析 .env 文件相关的一般错误。你会看到这在错误中指出,例如

The environment file is invalid!
Failed to parse dotenv file due to unexpected whitespace. 
Failed at [This will fail].
Run Code Online (Sandbox Code Playgroud)

在这个例子中,它是由APP_NAME字段中未转义的空格引起的,即

APP_NAME=This will fail
Run Code Online (Sandbox Code Playgroud)

要修复,请使用引号转义,例如

APP_NAME="This is better"
Run Code Online (Sandbox Code Playgroud)


Muh*_*ram 10

这是我们更改应用程序名称时的一般错误。要消除此错误,只需执行此操作。

APP_NAME=My Project Name 
Run Code Online (Sandbox Code Playgroud)

对此

APP_NAME="My Project Name"
Run Code Online (Sandbox Code Playgroud)

您只需要在名称周围添加“”课程。谢谢


Abd*_*yar 6

我找到了这个问题的原因。

这是因为.env 文件中的行分隔符!

它必须是CRLF而不是 LF

我的 .env 文件是 LF

查看屏幕截图以了解解决方案

  • 这并不能解释任何事情......请用您的答案进行描述,以便像我这样的其他人可以找出解决方案。 (2认同)

小智 6

从 Laravel 5.5 升级到 Laravel 5.8 时,我收到了类似的错误。

环境文件无效!由于名称无效,无法解析 dotenv 文件。在 [//APP_ENV] 处失败。

5.5 将接受对 APP_ENV 的 C 风格注释:

// env file setup for production environment
//APP_ENV = production
//APP_DEBUG = false
// env file setup for local environment
APP_ENV = local
APP_DEBUG = true
Run Code Online (Sandbox Code Playgroud)

而 5.8 不会。# 适用于评论:

# env file setup for production environment
#APP_ENV = production
#APP_DEBUG = false
# env file setup for local environment
APP_ENV=local
APP_DEBUG=true
Run Code Online (Sandbox Code Playgroud)

我曾尝试删除空格,因为这些定义中没有空格的全新 5.8 应用程序安装。那没有解决它。

奇怪的是我在文件的其他地方还有 C 风格的注释,所以只针对 APP_ENV?


小智 5

我更改了.env的编码并解决了。

无 BOM 的 UFT-8

谢谢