问题标签 [phpdotenv]
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.
laravel - Laravel 5 Dotenv for specific subdomain
I have a few subdomain in my laravel 5 application, each sub domain have a specific configuration, like mail, nocaptcha, etc.
how to set .env file to work with my-specific subdomain ?
php - dotenv 在生产中需要 .env 文件
我正在使用 PHP 的 dotenv 来管理环境设置(不是 lavarel,但我标记了它,因为 lavarel 也使用 dotenv)
我已将 .env 从代码库中排除,并为所有其他协作者添加了 .env.example
在 dotenv 的 github 页面上:
phpdotenv 是为开发环境而设计的,一般不应该在生产环境中使用。在生产环境中,应该设置实际的环境变量,这样就不会在每个请求上加载 .env 文件的开销。这可以通过使用 Vagrant、chef 或 Puppet 等工具的自动化部署过程来实现,也可以使用 Pagodabox 和 Heroku 等云主机手动设置。
我不明白的是我得到以下异常:
PHP Fatal error: Uncaught exception 'InvalidArgumentException' with message 'Dotenv: Environment file .env not found or not readable.
这与文档所说的“应该设置实际的环境变量,以便没有在每个请求上加载 .env 文件的开销”相矛盾。
所以问题是 dotenv 是否有任何理由抛出该异常和/或我错过了什么?首先,与其他 dotenv 库(ruby)相比,行为是不同的
我可以轻松解决这个不太好的解决方案:
我认为最好的解决方案,但我认为 dotenv 应该处理这个问题。
php - 在 Laravel 5.1 中使用 .env 设置存储路径
我想使用该.env
文件在 Laravel 5.1 中配置存储路径。我的bootstrap/app.php
样子是这样的:
.env 文件中的相关行是:
这行不通。我发现 Dotenv 库在处理引导程序后被.env
初始化,因此变量在bootstrap.php
.
是否有其他地方可以设置存储路径并且.env
变量可用?
amazon-web-services - 没有 .env 文件的命令行生产中的 Laravel 和环境变量
当我升级到 Laravel 5 时,我开始使用 env 系统,我在该文件的根目录中设置了所有配置。
.env
该文件不是我的存储库的一部分,当我部署时,我将相同的变量设置到我的系统环境变量中(在此处使用 amazon beanstalk),因此无需.env文件即可访问它们。
所以一切正常,但现在当我在生产中的脚本中使用命令行时,这些系统环境变量似乎无法在命令行中访问。然而,当 PHP 通过 Web 服务器提供服务时,它们是可访问的。
我发现如果我复制添加回这个 .env 文件,那么它可以在命令行中工作,但这就是我感到困惑的原因,我认为这个系统是为了防止将敏感信息提交到 repo,现在看来我必须这样做我可以在生产中使用我的 php artisan migrate 和其他命令。
我错过了什么吗?有没有办法在命令行中获取可用的系统环境变量,或者我是否必须以某种方式在生产中动态创建该 .env 文件?
php - Laravel 5 - 按服务器名称检测环境
我了解 Laravel 5,它使用 .env 文件,因此我们可以设置特定的环境值。
我的问题是,在 Laravel 5 中有没有办法,例如,
并由此使用生产价值。我的想法是,我希望将所有环境及其变量放在一个文件或目录中,或者其他任何东西,这样我们就可以在没有任何手动干预的情况下部署整个构建,我们可以将这一切都检查到我们的代码存储库中。
php - 忽略单元测试中的 .env 文件
我的大部分课程都包括加载环境变量以进行配置。当我编码时,我认为vlucas/phpdotenv忽略了.env
测试环境中的文件,因为已经有一个 conf 文件,就像phpunit.xml
你定义它们的地方一样。
在测试环境中是否可以让 dotenv 忽略 .env?
laravel-5 - 如何在 travis-ci 中为 Lumen 应用程序读取环境变量
我有一个使用 vlucas 的 Dotenv 库的 Lumen 应用程序。尝试部署时,travis-ci 抱怨没有“.env”文件。我是否需要修改我的 bootstrap/app.php 文件以有条件地加载 Dotenv 类,还是有更好的方法来处理这个问题?
我收到的错误消息是:
PHP 致命错误:未捕获的异常 'InvalidArgumentException' 带有消息 'Dotenv: Environment file .env not found or not readable. 在 /home/travis/build/project/repo/vendor/vlucas/phpdotenv/src/Dotenv.php 中的 /home/travis/build/project/repo/bootstrap/../.env' 中使用您的环境设置创建文件: 33
laravel - .env 数据不能用 config() 函数读取,也不能用 \Config 外观
我有一个可以在多台服务器上完美运行的 Laravel 5 应用程序。但是在特定的服务器上,我的.env
文件的值不能通过\Config
外观或config()
函数读取。
让我举一个APP_DEBUG
环境条目的例子,所有其他条目也是如此。
我的 .env 文件(在所有服务器上都相同)包括以下行:
通过使用$app->environmentFile()
我知道,我的.env
文件被使用了。
当我通过 直接输出debug
参数时env('APP_DEBUG')
,我得到了正确的值( ),但是从配置( ,,)false
中读取值的所有方法都只返回。\Config::get('app.debug')
config('app.debug')
app('config')->get('app.debug')
NULL
我还尝试通过 清除缓存artisan cache:clear
,因为我认为可能存在一些缓存问题,但这并没有改变任何事情。
我还尝试将 .env 文件的权限设置为 777。
当我通过 输出我的整个配置时\Config::all()
,在我的其他服务器上正确设置的所有值都NULL
在这个特定的服务器上。
有什么建议么?
编辑澄清:该项目在两个不同的虚拟主机上的同一服务器上设置了两次,一个用于服务 dev.domain.tld(用于开发),另一个用于服务 www.domain.tld(用于生产)。两个文件夹使用相同的网络服务器、相同的 PHP 版本和相同的用户
php - 如何在 Laravel 5 中为 phpunit 指定不同的 .env 文件?
我有一个.env
包含我的数据库连接详细信息的文件,这对于 Laravel 5 来说是正常的。我想覆盖这些以进行测试,我可以在phpunit.xml
. 然而,这样做似乎违背了.env
不提交环境配置的理念,尤其是密码。
是否有可能有类似的东西.env.testing
并告诉phpunit.xml
从中读取?
php - 在 .env (dotenv) 文件中使用 PHP 函数
我正在尝试在 .env 文件中使用 PHP 函数,就rand()
我而言。
这是我要在 .env 中实现的目标;
如您所见,我正在尝试生成从 1 到 5 的随机整数,它们代表 CDN 子域,以便在一个请求中我会得到http://cdn2.example.com
另一个请求http://cdn4.example.com
,依此类推。
我想在 .env 中使用 PHP 不是本机支持的,但有什么方法/解决方法吗?
PS我正在使用Laravel 5。