【问题标题】:Laravel env file is not loadingLaravel env 文件未加载
【发布时间】:2017-06-25 23:23:27
【问题描述】:

我已将我的 laravel 项目从本地移动到生产服务器,即 centos vps。 我面临的奇怪事情是 laravel 无法从 .env 文件中读取,我已经测试了一切以使其工作但没有成功。

我已将它的权限设置为777,并将其所有者设置为vps的所有者。

还是没有成功。

仅供参考:它在 gitignore 中,但我在服务器上创建了 .env 文件,所以这个问题与 gitignore 无关。

有人可以逐步指导我在生产服务器上运行 laravel 吗? 究竟应该做什么,需要执行什么命令,应该把项目放在哪里,应该把公共目录文件放在哪里?

请帮帮我。

【问题讨论】:

  • 你想从.env文件中得到什么?错误是什么?
  • app_url、app-key、数据库配置、缓存配置、大量数据。我已经把 dd(env('APP_KEY'));在我的代码中,它返回 null 或 ''
  • 可能有误,但你试过php artisan config:clear?听起来 config:cache 可能已运行但未实现:)
  • @Iskar 是的,我试过了,还是没有成功
  • 权限永远不需要为 777。您是否在服务器上运行了composer install?

标签: php laravel server laravel-5.3 production-environment


【解决方案1】:

也许你可以尝试清除配置缓存:

php artisan config:clear

【讨论】:

    【解决方案2】:

    在生产环境中,您应该从不拥有 .env 文件。相反,创建适当的环境变量,PHP 将从那里读取它们。

    取自 DotEnv 官方文档:

    phpdotenv 是为开发环境而设计的,通常应该 不能用于生产。在生产中,实际环境 应该设置变量,以便没有加载 每个请求的 .env 文件。这可以通过自动化来实现 使用 Vagrant、chef 或 Puppet 等工具的部署过程,或者可以是 使用 Pagodabox 和 Heroku 等云主机手动设置。

    【讨论】:

    • 我怎样才能做到这一点?如何创建环境变量而不是 env ?
    • 谢谢大佬解决了我的问题。
    【解决方案3】:

    你试过了吗-

    复制自官方文档

    安装 Laravel 后,你可能需要配置一些权限。 storage 中的目录和 bootstrap/cache 目录应该可以被你的 Web 服务器写入,否则 Laravel 将无法运行。如果你使用 Homestead 虚拟机,这些权限应该已经设置好了。

    【讨论】:

    • 我的存储目录权限是777,服务器所有者可以写,但问题依旧存在。
    • 您可以尝试使用 softaculous 安装程序安装 laravel,然后将所有视图、模型、控制器和路由复制到相应目录。
    猜你喜欢
    • 2018-06-05
    • 2015-11-12
    • 2022-10-01
    • 2020-06-19
    • 1970-01-01
    • 1970-01-01
    • 2020-03-26
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多