【问题标题】:Laravel does not read .env file in panelLaravel 不读取面板中的 .env 文件
【发布时间】:2025-12-04 01:10:02
【问题描述】:

我已将我的 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 上的一个测试。

标签: php laravel 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 上)。

【讨论】: