此问题仅在我的共享主机上使用Laravel 5.8发生。
在与Laravel 5.7共享的主机中,它运行良好。
在我的本地环境中使用Laravel 5.8可以正常工作。
问题是:
每次我运行php artisan命令(仅在与Laravel 5.8共享的主机上)时,都会出现此错误
环境文件无效!由于名称无效,无法解析dotenv文件。
在[APP_NAME]上失败。
我的.env第一行是:APP_NAME=rased
我的网站在更新为Laravel 5.8之后也变成了白色的空白页面!
答案 0 :(得分:4)
这是与解析.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"
答案 1 :(得分:4)
这是我们更改应用名称时的一般错误。要删除此错误,只需执行此操作。
APP_NAME=My Project Name
对此
APP_NAME="My Project Name"
您只需要在名称周围添加“”课程即可。 谢谢
答案 2 :(得分:2)
我最近在Laravel 6.12.0的应用程序中遇到了同样的问题。
我能够通过在.env
文件顶部添加空白新行/空格来解决此问题。
.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}"
答案 3 :(得分:2)
我更改了.env的编码,并解决了该问题。
没有BOM的UFT-8
谢谢
答案 4 :(得分:0)
从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
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?
答案 5 :(得分:0)
我遇到了完全相同的问题,但解决方案不同。 CRLF没有影响。
这让我发疯,我读到某个地方不再支持C样式注释。我的env文件不包含任何文件,但无奈之下,我在文件顶部添加了以下行:
# getting tiresome.
我认为措辞并不重要,但关键是要发表评论。
之后,它起作用了。我不知道为什么,但是确实如此。
答案 6 :(得分:0)
MAIL_FROM_NAME =帐户确认
我只是在两个词之间留出空格 只是尝试避免这样:Account_confirmation
MAIL_FROM_NAME =帐户确认(正确)
答案 7 :(得分:0)
就我而言,我有多余的一行不应该出现。
Header set X-Frame-Options SAMEORIGIN
删除了此内容,并已解决
答案 8 :(得分:0)
我发现如果您在 .env 文件中用引号声明 APP_NAME,它将允许应用程序名称中包含空格,但请确保您使用命令 (php artisan serve) 重新启动服务器 例如:APP_NAME='Laravel Login'
这对我有用。
答案 9 :(得分:-1)
我找到了这个问题的原因。
这是因为 .env文件中的行分隔符!
必须为 CRLF 而不是LF
我的.env文件是LF
答案 10 :(得分:-1)
万一其他人到达这里并没有解决他们的问题。我遇到了这个问题,发现这是由于使用连字符来分隔环境变量名称。
NOM-OPEN="2020/01/24"
这对Laravel 5.7来说还可以,但跌至5.8。要解决此问题,请将连字符更改为下划线。
NOM_OPEN="2020/01/24"
别忘了更新对变量的所有引用!