问题标签 [laravel-environment]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
3802 浏览

laravel - Laravel 5.2 未在 ubuntu 上读取 .env

注意:这个问题不是这些问题的重复:

  1. Laravel 5.2 不读取 env 文件
  2. Laravel 5.2 .env 有时无法及时加载

我收到此错误:

当我尝试dd($config['key']);它返回'null'。甚至数据库环境变量也返回 null。所以这意味着 Laravel 没有从 .env 文件中读取。

  1. 是什么原因?
  2. 如何解决这个问题?

现在我已经通过在 Config/app.php 文件中手动指定键并在 Config/database.php 文件中设置数据库值来解决这个问题

我怀疑我的 .env 文件的权限/所有者错误。我正在使用Elementary OS进行开发

0 投票
4 回答
1734 浏览

php - 如果环境不是生产,你将如何跳过 Laravel Scout?

我有一个正在用 Laravel 编写的应用程序。我对这个框架还很陌生,而且大部分内容都不了解。我使用 Algolia 作为 Laravel 的 Scout 的搜索引擎。在你添加的模型use Searchable中,一个特征,并且记录会自动传递给 Algolia,这很酷。我试图发表一个简单的声明if (App::environment('local'))" exit scout,这样我们就不会将我们的开发数据发送到 Algolia。如果我用完 Algolia 的 10,000 条记录的黑客级别,Scout 也会抛出异常。

0 投票
0 回答
138 浏览

php - 为什么我在从 GIT 检索 Laravel 项目后运行它时会收到此错误消息?控制器不能工作?

我在Laravel中很新,我有以下问题。

我正在我的旧笔记本上开发一个Laravel 5应用程序,将我的代码放在我的GIT存储库中。然后我更换笔记本电脑,并从 GIT 签出我的 Laravel 5 项目。

然后我执行此语句以重新导入我的依赖项:

现在我的问题是我无法访问我的 Laravel 网站的已开发部分。

例如我有这个控制器类:

index()方法渲染resources/views/registration/index.blade.php视图。

问题是尝试打开 URL http://laravel.dev/registration我得到以下 Laravel 错误消息:

此外,如果我尝试访问http://laravel.dev/基本 URL,我将获得相同的错误消息。

其中laravel.dev是以这种方式在我的C:\xampp\apache\conf\extra\httpd-vhosts.conf文件中声明的虚拟主机:

其中C:/xampp/htdocs是我所有项目都部署在 Apache 中的位置,而C:/xampp/htdocs/HotelRegistration/public是我的 Laravel 5 项目的公共文件夹。

执行php artisan route:list语句,我获得了所有路由的列表:

其中包含:

所以看起来注册资源正确地关联到前面的控制器方法。

那么为什么我会遇到这个问题?问题是什么?我错过了什么?我该如何解决这个问题?

EDIT-1:进入laravel.log文件我发现了这个错误信息:

所以问题可能取决于我没有更多的.env文件这一事实(因为 GIT 似乎忽略了它)?

0 投票
1 回答
268 浏览

php - 使用 Liebig 在 Laravel 5.X 中运行 cron 作业时具有未定义的索引

我的 cron 工作中有一个奇怪的错误。一开始,当我运行 cron 作业时,它工作正常。那时我通常定义变量。像,$ck_host='abc';。但是现在我更改代码并从 laravel 的 .env 文件中访问相同的变量。像,$ck_host=$_ENV['CK_HOST'];。当我在浏览器中运行时,它工作正常。但在 cron 作业中,它显示未定义索引:CK_HOST。我附上了日志的图像。

在此处输入图像描述

笔记:

  • 我正在使用vlucas/phpdotenv来访问 env 文件。
  • 所有的 cron 都不在 Laravel 中。有一些在核心 PHP 中。问题出在核心 PHP 中。
  • 在github中发布问题。但是没看懂答案。

我认为:

问题是我在代码中调用 .env 文件的位置。该玉米供应商无法使用该功能。 $dotenv = new Dotenv\Dotenv($doc_root); $dotenv->load(); $doc_root包含 env 文件的路径。请再次注意,所有文件都在浏览器中运行,但是当我运行 cron 时,我也在编写一个日志文件。错误就来了。

请帮我。或者告诉我如何在没有任何 laravel 供应商的情况下使用 .env 文件。

提前感谢您的帮助。

0 投票
1 回答
449 浏览

ajax - Laravel 加密密钥在页面加载时“消失”

我在使用 Laravel 和 Ajax 时遇到了一些问题,我无法通过 Google 或 Stackoverflow 解决这些问题。无论我看到什么解决方案,我都已经考虑过了。

偶尔我会收到 500 错误(有时是 401)。它只发生在 Ajax 上,这表明我没有正确发送 CSRF 令牌。

但是 CSRF 是在每个页面加载上,并且问题开始于 4 天前,而该项目大约有一个月的历史。它发生在 10 个 Ajax 调用中可能有 1 个。其他 9 个将执行得很好。

Ajax 调用在页面加载后立即进行。Laravel 是否有可能没有更新对传入 Ajax 调用的期望?没有其他 Ajax 调用会导致此问题。

laravel.log 说:

[堆栈跟踪]

这对我来说非常奇怪,有两个原因。首先,存在加密。如前所述,该项目已经存在很长时间,问题是零星的。其次,它说“production.ERROR”,但环境是本地的。我在 .env 文件中有这个:

有人对如何解决或如何进一步调试问题有任何想法吗?我在这里有点空白。

更新:这个问题肯定与页面加载时立即调用的 AJAX 调用有关。我刚刚在不同的项目中出现了完全相同的问题,项目中的所有其他 AJAX 调用都按预期工作;但是在页面加载时立即调用的那个会偶尔出现 401 和 500 失败。

0 投票
0 回答
224 浏览

laravel - 如何将 Laravel 护照/身份验证指向生产环境,同时利用本地数据库获取典型数据

我已经利用 Laravel 5x(比如说 api.test)构建了一个生产 API。我现在已经到了需要为 API 的用户创建一个沙盒环境来测试 API 而不会混淆实时数据的地步(比如说 sandbox.api.test)

显然,我可以创建一个当前生产环境的精确克隆,并将所有内容分开身份验证、密钥等。

理想情况下,我希望沙箱的身份验证部分指向生产数据库,这样用户就不必创建新的用户帐户并将 oauth 密钥与护照分开。

我正在努力解决他如何将任何与身份验证相关的内容,以便用户/护照指向我的生产环境,并将其余的数据库操作保留在 sandbox.api.test 本地

我知道我可以在 database.php 中创建一个新连接,但是我如何在我的沙箱代码中更新 auth 和 oauth ......这可能吗?

花旗

0 投票
1 回答
340 浏览

php - 如何从 Laravel 控制器中的用户获取或设置不同的 `env` 值

我正在尝试ENV从用户端动态设置一些值。我想使用多个短信网关服务,以便用户可以使用多个网关中的任何一个。多个服务有不同api的,sidtoken。我将这些服务提供商凭据保存在sms_gateways表中,并尝试使用此表中的这些凭据,而不是控制器方法中的手动代码。但是,像这样使用我遇到了麻烦。我正在尝试这样的事情 -

0 投票
1 回答
81 浏览

php - Laravel - 捕获 php artisan 命令

我做了一些更改config/app以使用前端选择的多个数据库,现在我必须告诉\Request()->header('database')我要访问哪个数据库。

它工作得很好,问题是:当我尝试执行任何工匠命令时,我的逻辑死了,因为没有通知数据库。

所以我需要在artisan commands中通知数据库,如下所示:

我如何观察所有命令以获取参数?

0 投票
4 回答
2549 浏览

php - Laravel ENV 不重新加载

我使用Laravel 6.2valetPHP 7.3.12

问题是我想更改DB_DATABASE=laravelDB_DATABASE=something_elsein.env文件,但它根本不重新加载新的 .env 值

我已经尝试过这个命令:

但它仍然没有改变。

我什至尝试在文件中添加一个新密钥并在Tinker.env中查询它,但新密钥也没有添加。

0 投票
1 回答
376 浏览

laravel - 如何从 Laravel 中的 .env 文件访问存储文件

我创建了一个 JSON 文件以在我的 Laravel 项目 => BigQuery docs中使用 BigQuery 。我将文件放在文件storage夹中以限制其访问。我只需要从我的.env文件中访问它。

GOOGLE_APPLICATION_CREDENTIALS='/storage/file.json'

自然,我无法轻松访问该文件夹,并且我知道有一些方法可以访问它,但是创建符号链接会使该文件可以从任何地方访问,我不希望那样。有没有一种安全的方式来访问我的 .env 文件中的那个文件?或者有没有更好的方法,我应该在另一个文件夹中放置 JSON 文件?