Laravel 5.8 , artisan commands error : Failed to parse dotenv file due to an invalid name
Laravel 5.8 , artisan commands error : Failed to parse dotenv file due to an invalid name
这个问题只发生在我的共享主机上的Laravel 5.8。
它在我与 Laravel 5.7 的共享主机中运行良好。
它在我的本地环境中使用 Laravel 5.8 工作正常。
问题是:
每次我 运行 php artisan 命令(在我与 Laravel 5.8 共享的主机上)我都会收到这个错误
The environment file is invalid! Failed to parse dotenv file due to an invalid name.
Failed at [APP_NAME].
我的 .env 第一行是:APP_NAME=rased
我的网站在更新到 Laravel 5.8 后也变成了一个白色的空白页面!
我找到了这个问题的原因。
这是因为 .env 文件中的行分隔符 !
必须是CRLF而不是LF
我的 .env 文件是 LF
see the screenshot to understand the solution
这是与解析 .env 文件相关的一般错误。
您会在错误中看到这一点,例如
The environment file is invalid!
Failed to parse dotenv file due to unexpected whitespace.
Failed at [This will fail].
在这个例子中,它是由于 APP_NAME
字段中有未转义的空格引起的,即
APP_NAME=This will fail
要修复,请用引号转义,例如
APP_NAME="This is better"
我在从 Laravel 5.5 升级到 Laravel 5.8 时遇到了类似的错误。
The environment file is invalid! Failed to parse dotenv file due to an
invalid name. Failed at [//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
而 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
我曾尝试删除这些定义中没有空格的全新 5.8 应用程序安装中的空格。那并没有解决它。
奇怪的是我在文件的其他地方还有 C 风格的注释,所以只针对 APP_ENV?
我遇到了完全相同的问题,但解决方案不同。 CRLF 没有任何区别。
这让我抓狂,我在某处读到不再支持 C 风格注释。我的 env 文件不包含任何内容,但无奈之下我在文件顶部添加了以下行:
# getting tiresome.
我认为措辞不重要,但关键是有评论。
在那之后,它起作用了。我不知道为什么,但确实如此。
快进几个月,下次升级时问题又来了 Laravel。这有点奇怪,因为文件是一样的。这次我必须确保将文件保存为不带 BOM 的 UTF-8。
MAIL_FROM_NAME=账户确认
我只是在两个词之间留出空格
尽量避免它,例如:Account_confirmation
MAIL_FROM_NAME=Account_confirmation(正确)
以防万一其他人到了这里还没有解决他们的问题。我遇到了这个问题,发现这是由于使用连字符分隔环境变量名称造成的。
NOM-OPEN="2020/01/24"
在 Laravel 5.7 之前还可以,但到了 5.8 就跌倒了。要解决它,请将连字符更改为下划线。
NOM_OPEN="2020/01/24"
不要忘记更新对变量的所有引用!
我最近 运行 在我的 Laravel 6.12.0 应用程序中遇到了同样的问题。
我可以通过在 .env
文件的顶部添加一个空白的新 line/space 来解决这个问题。
示例 .env 文件:
[add a new line here]
APP_NAME=Laravel
APP_ENV=local
APP_KEY=
APP_DEBUG=true
APP_URL=http://localhost
LOG_CHANNEL=stack
DB_CONNECTION=mysql
DB_HOST=127.0.0.1
DB_PORT=3306
DB_DATABASE=laravel
DB_USERNAME=root
DB_PASSWORD=
BROADCAST_DRIVER=log
CACHE_DRIVER=file
QUEUE_CONNECTION=sync
SESSION_DRIVER=file
SESSION_LIFETIME=120
REDIS_HOST=127.0.0.1
REDIS_PASSWORD=null
REDIS_PORT=6379
MAIL_DRIVER=smtp
MAIL_HOST=smtp.mailtrap.io
MAIL_PORT=2525
MAIL_USERNAME=null
MAIL_PASSWORD=null
MAIL_ENCRYPTION=null
MAIL_FROM_ADDRESS=null
MAIL_FROM_NAME="${APP_NAME}"
AWS_ACCESS_KEY_ID=
AWS_SECRET_ACCESS_KEY=
AWS_DEFAULT_REGION=us-east-1
AWS_BUCKET=
PUSHER_APP_ID=
PUSHER_APP_KEY=
PUSHER_APP_SECRET=
PUSHER_APP_CLUSTER=mt1
MIX_PUSHER_APP_KEY="${PUSHER_APP_KEY}"
MIX_PUSHER_APP_CLUSTER="${PUSHER_APP_CLUSTER}"
我把.env的编码改了一下就解决了
UFT-8 without BOM
谢谢
这是我们更改应用程序名称时的一般错误。要删除此错误,只需执行此操作。
APP_NAME=My Project Name
至此
APP_NAME="My Project Name"
您只需要在名称周围添加“”课程。
谢谢
就我而言,我有一条不应该出现的额外行。
Header set X-Frame-Options SAMEORIGIN
删除了这个 它成功了
我发现,如果您在 .env 文件中用引号声明 APP_NAME,它会在应用程序名称中允许空格,但请确保您使用命令 (php artisan服务)
例如:APP_NAME='Laravel Login'
这对我有用。
这个问题只发生在我的共享主机上的Laravel 5.8。
它在我与 Laravel 5.7 的共享主机中运行良好。
它在我的本地环境中使用 Laravel 5.8 工作正常。
问题是:
每次我 运行 php artisan 命令(在我与 Laravel 5.8 共享的主机上)我都会收到这个错误
The environment file is invalid! Failed to parse dotenv file due to an invalid name.
Failed at [APP_NAME].
我的 .env 第一行是:APP_NAME=rased
我的网站在更新到 Laravel 5.8 后也变成了一个白色的空白页面!
我找到了这个问题的原因。
这是因为 .env 文件中的行分隔符 !
必须是CRLF而不是LF
我的 .env 文件是 LF
see the screenshot to understand the solution
这是与解析 .env 文件相关的一般错误。 您会在错误中看到这一点,例如
The environment file is invalid!
Failed to parse dotenv file due to unexpected whitespace.
Failed at [This will fail].
在这个例子中,它是由于 APP_NAME
字段中有未转义的空格引起的,即
APP_NAME=This will fail
要修复,请用引号转义,例如
APP_NAME="This is better"
我在从 Laravel 5.5 升级到 Laravel 5.8 时遇到了类似的错误。
The environment file is invalid! Failed to parse dotenv file due to an invalid name. Failed at [//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
而 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
我曾尝试删除这些定义中没有空格的全新 5.8 应用程序安装中的空格。那并没有解决它。
奇怪的是我在文件的其他地方还有 C 风格的注释,所以只针对 APP_ENV?
我遇到了完全相同的问题,但解决方案不同。 CRLF 没有任何区别。
这让我抓狂,我在某处读到不再支持 C 风格注释。我的 env 文件不包含任何内容,但无奈之下我在文件顶部添加了以下行:
# getting tiresome.
我认为措辞不重要,但关键是有评论。
在那之后,它起作用了。我不知道为什么,但确实如此。
快进几个月,下次升级时问题又来了 Laravel。这有点奇怪,因为文件是一样的。这次我必须确保将文件保存为不带 BOM 的 UTF-8。
MAIL_FROM_NAME=账户确认
我只是在两个词之间留出空格 尽量避免它,例如:Account_confirmation
MAIL_FROM_NAME=Account_confirmation(正确)
以防万一其他人到了这里还没有解决他们的问题。我遇到了这个问题,发现这是由于使用连字符分隔环境变量名称造成的。
NOM-OPEN="2020/01/24"
在 Laravel 5.7 之前还可以,但到了 5.8 就跌倒了。要解决它,请将连字符更改为下划线。
NOM_OPEN="2020/01/24"
不要忘记更新对变量的所有引用!
我最近 运行 在我的 Laravel 6.12.0 应用程序中遇到了同样的问题。
我可以通过在 .env
文件的顶部添加一个空白的新 line/space 来解决这个问题。
示例 .env 文件:
[add a new line here]
APP_NAME=Laravel
APP_ENV=local
APP_KEY=
APP_DEBUG=true
APP_URL=http://localhost
LOG_CHANNEL=stack
DB_CONNECTION=mysql
DB_HOST=127.0.0.1
DB_PORT=3306
DB_DATABASE=laravel
DB_USERNAME=root
DB_PASSWORD=
BROADCAST_DRIVER=log
CACHE_DRIVER=file
QUEUE_CONNECTION=sync
SESSION_DRIVER=file
SESSION_LIFETIME=120
REDIS_HOST=127.0.0.1
REDIS_PASSWORD=null
REDIS_PORT=6379
MAIL_DRIVER=smtp
MAIL_HOST=smtp.mailtrap.io
MAIL_PORT=2525
MAIL_USERNAME=null
MAIL_PASSWORD=null
MAIL_ENCRYPTION=null
MAIL_FROM_ADDRESS=null
MAIL_FROM_NAME="${APP_NAME}"
AWS_ACCESS_KEY_ID=
AWS_SECRET_ACCESS_KEY=
AWS_DEFAULT_REGION=us-east-1
AWS_BUCKET=
PUSHER_APP_ID=
PUSHER_APP_KEY=
PUSHER_APP_SECRET=
PUSHER_APP_CLUSTER=mt1
MIX_PUSHER_APP_KEY="${PUSHER_APP_KEY}"
MIX_PUSHER_APP_CLUSTER="${PUSHER_APP_CLUSTER}"
我把.env的编码改了一下就解决了
UFT-8 without BOM
谢谢
这是我们更改应用程序名称时的一般错误。要删除此错误,只需执行此操作。
APP_NAME=My Project Name
至此
APP_NAME="My Project Name"
您只需要在名称周围添加“”课程。 谢谢
就我而言,我有一条不应该出现的额外行。
Header set X-Frame-Options SAMEORIGIN
删除了这个 它成功了
我发现,如果您在 .env 文件中用引号声明 APP_NAME,它会在应用程序名称中允许空格,但请确保您使用命令 (php artisan服务) 例如:APP_NAME='Laravel Login'
这对我有用。