Laravel 不读取面板中的 .env 文件

Posted

技术标签:

【中文标题】Laravel 不读取面板中的 .env 文件【英文标题】:Laravel does not read .env file in panel 【发布时间】:2018-10-20 02:26:38 【问题描述】:

我已将我的 Laravel 应用程序上传到 cpanel 主机。 问题是 Laravel 没有读取 .env 文件的内容并向我显示“哎呀,好像出了点问题”。页(两次在一页中) 显示此错误是因为程序无法接收 APP_KEY 变量。根本无法读取 .env 文件。我搜索了一下这个问题,但解决方案不起作用。我尝试了所有这些:

'php artisan cache:clear' 命令 'php artisan config:clear' 命令 'php artisan config:cache' 命令 更改 .env 文件的权限 (755) 运行所有“composer update”、“composer install”、“composer dump-autoload”命令 我没有在任何地方使用 env 函数 env 文件中存储的值中没有空格

但以上都没有解决。 但是,我的程序在本地(windows)运行良好,没有问题,但它没有在服务器(cpanel)上运行

注意:我意识到当我在服务器上执行“php artisan config:cache”命令时,所有缓存文件都在“bootstrap/cache”文件夹中,除了 config.php 文件 注意2:我以不同的方式上传了几次。一旦根目录中的文件夹中的所有文件和 public_html 文件夹中的公共文件。以及 public_html 文件夹中的所有文件。两者都不起作用

有谁知道问题出在哪里?

in this time i put all my app files in public_html folder

【问题讨论】:

你是怎么上传到cPanel的,文件结构是什么?我假设您的公共文件夹的内容现在位于 public_html 文件夹中,其余文件位于根文件夹中? 我以不同的方式上传了好几次。一旦根目录中的文件夹中的所有文件和 public_html 文件夹中的公共文件。以及 public_html 文件夹中的所有文件。两者都不起作用 APP_KEY 首先在 .env 中设置并在 config/app.php 中读取。 发布文件树的屏幕截图 正如我所说,问题根本不是应用程序密钥。问题是 .env 文件没有被读取。我可以直接在 config.php 中设置 app 键。但我想知道为什么 .env 文件不起作用。 +这不是一个真正的项目这是在 cpanel 上的一个测试。 【参考方案1】:

在新网站上我总是会遇到这种情况,所以我通常会运行:

chmod 777 storage/ storage/app/ storage/framework/ storage/logs/
chmod 777 storage/ storage/app/ storage/framework/ storage/logs/
chmod 777 storage/framework/cache/ storage/framework/sessions/ storage/framework/views/
chmod 777 bootstrap/cache/
chmod 777 bootstrap/cache/*
chmod 777 storage/logs/laravel.log

注意:最后一个(laravel.log)第一次是不存在的,bun后创建的。

如果你第一次运行,你可以使用更推荐的 ug+rwx 而不是 777: chgrp -R www-data 存储引导/缓存 chgrp -R www-data storage 存储

其中 www-data 是网络服务器用户,可以是 apache 或 httpd

【讨论】:

谢谢,但没有解决问题。只求好奇:这些变化不会影响安全吗? 这些更改消除共享主机上的安全性。 不要在共享主机上使用 777。【参考方案2】:

查看storage/logs/laravel.log 文件以获得更准确的信息。

确保putenv()getenv() 功能没有在php.ini 中被禁用

【讨论】:

是的。我联系了我的托管服务器为我启用了putenv 功能。现在效果很好。谢谢朋友【参考方案3】:

您不应该将 .env 文件用于生产,它仅用于开发目的。

为您的产品创建环境变量(在服务器而不是 .env 上)。

【讨论】:

以上是关于Laravel 不读取面板中的 .env 文件的主要内容,如果未能解决你的问题,请参考以下文章

Laravel .env 文件偶发性值读取不到

Laravel 5.2不是在ubuntu上从.env上读取的

Laravel:php artisan key:generate三种报错解决方案,修改默认PHP版本(宝塔面板)

AWS Elastic Beanstalk - 在环境属性中设置 .env Laravel

laravel.01.一些细节

关于Lumen / Laravel .env 文件中的环境变量是如何生效的