- android - RelativeLayout 背景可绘制重叠内容
- android - 如何链接 cpufeatures lib 以获取 native android 库?
- java - OnItemClickListener 不起作用,但 OnLongItemClickListener 在自定义 ListView 中起作用
- java - Android 文件转字符串
我使用 Elastic Beanstalk 在 AWS EC2 服务器上托管我的 PHP 项目。我已经使用 php dotenv
设置了我的 ENV Vars,这似乎让我的 vars 从我的根 .env
文件中得到了很好的:
DbConnect.php:
require '../vendor/autoload.php';
$dotenv = new Dotenv($_SERVER['DOCUMENT_ROOT']);
$dotenv->load();
$DB_HOST = getenv('DB_HOST');
$DB_USERNAME = getenv('DB_USERNAME');
$DB_PASSWORD = getenv('DB_PASSWORD');
$DB_DATABASE = getenv('DB_DATABASE');
$mysqli = new mysqli($DB_HOST, $DB_USERNAME, $DB_PASSWORD, $DB_DATABASE);
因此,在 AWS 管理控制台中,我在软件配置、git 推送和重新部署中设置了相同名称的 ENV 变量。我收到 500 错误,因为 EC2 ENV 变量似乎没有出现。
还有什么我需要做的吗?
更新:
eb printenv
显示了正确的环境变量值。
最佳答案
引自 https://github.com/vlucas/phpdotenv
phpdotenv is made for development environments, and generally should not be used in production. In production, the actual environment variables should be set so that there is no overhead of loading the .env file on each request. This can be achieved via an automated deployment process with tools like Vagrant, chef, or Puppet, or can be set manually with cloud hosts like Pagodabox and Heroku.
如果你没有 .env 文件,你将遇到 php fatal error
Fatal error: Uncaught exception 'Dotenv\Exception\InvalidPathException' with message 'Unable to read the environment file at /home/vagrant/Code/project/.env.' in /home/vagrant/Code/project/vendor/vlucas/phpdotenv/src/Loader.php on line 75
如果你愿意以下是您可以设置环境变量
来检查的示例代码,如果它在本地/测试环境中,它只会加载Dotenv类
if(getenv('APP_ENV') === 'local' || getenv('APP_ENV') === 'testing')
{
$dotenv = new Dotenv\Dotenv(__DIR__);
$dotenv->load();
}
或者另一种方法是检查 .env 文件是否存在
$filePath = rtrim(__DIR__, DIRECTORY_SEPARATOR).DIRECTORY_SEPARATOR . '.env';
if(is_file($filePath) && is_readable($filePath))
{
$dotenv = new Dotenv\Dotenv(__DIR__);
$dotenv->load();
}
关于php - AWS ElasticBeanstalk ENV Vars 不工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30904361/
得到这个错误: Command hooks (directoryHooksExecutor.py --path /opt/elasticbeanstalk/hooks/appdeploy/pre/)
我正在尝试部署一个基于 Docker 的环境,该环境在 AWS elasticbeanstalk 中使用 1-1 应用程序负载均衡器。我收到以下错误消息。之前似乎部署得很好,但由于未知原因,新部署失败
我的docker文件如下 FROM node:16.16.0 as ui WORKDIR /app COPY ./ui/package.json . RUN npm install COPY ./ui
我有一个 CloudFormation 模板 yml 文件,它为 ElasticBeanstalk 应用程序传递 OptionSettings。我可以对值进行硬编码,并且可以从参数传递值。但是,我无法
在将新的应用程序版本部署到我们的 elasticbeanstalk 环境(Tomcat 7、Java 6)时,我们发现抛出以下错误。 正在运行的后端 EC2 实例上的 eb-version-deplo
如何在正在运行的应用程序 (Spring Boot) 中以编程方式添加更多实例(向上扩展)ElasticBeanStalk 环境? 我想过使用 AWSElasticBeanstalkClient,但找
我有一个通过 AWS Elastic Beanstalk 和 Git 启动的应用程序。我最近了解了他们的配置文件以及您可以使用它们执行的一些操作。 我有一些需要特定权限的文件。当我执行 git aws
我尝试按如下方式为 ElasticBeanstalk 运行 DescribeConfigurationSettings API 方法: AWSElasticBeanstalk ebs = AWSEla
我正在使用 elasticbeanstalk 通过 AWS 托管一个应用程序。我正在使用工具带从我的本地机器推送我的应用程序。直到几周前,一切正常,但最近我的更改没有生效。我可以在 aws 管理控制台
我正在将 Rails 应用程序部署到 AWS。其中一个 gem 具有依赖性,需要在部署期间运行 bundle install 之前在服务器上安装某些文件。在我的 .ebextensions 文件中,我
我正在尝试新的 AWS Elastic Beanstalk 控制台用户界面。我现在在设置时遇到问题 虚拟路径 在用户界面上。 基本上我把我所有的静态文件,包括 index.html 放在一个文件夹 u
我正在尝试在 Amazon Elastic Beanstalk 上托管的 token 自动售货机上启用 SSL。但是,如果我尝试启用端口 443 监听器,它会告诉我需要 SSL 证书。 如果我有自己的
我构建了一个在AWS中运行的Docker镜像。 在Dockerfile中,我放置了一些命令,这些命令可以从某些网站下载某些资源,因此很显然,如果这些网站由于某种原因而关闭,则生成一个运行该镜像的新节点
有谁知道当应用程序在AWS Elasticbeanstalk上运行时如何从资源文件夹中读取文件? 请参阅下面的代码: Resource resource = new ClassPathResource
我尝试开发一个Elastic beanstalk客户端接口(interface),通过它连接到我的亚马逊帐户elasticbeanstalk。我使用了脚本文件 credentials.Csl 中的帐户
我正在运行带有 React 前端的 Spring Boot 服务器。我已将 React 项目构建为生产环境,并将构建内容复制到 Spring 项目中的 Webapp 文件夹中。当我在本地运行它时,它运
我最近创建了一个 AWS CodePipeline 管道,可以从 Github 拉取、使用 Jenkins/Maven 构建并部署到现有的 ElasticBeanstalk 项目。构建步骤的输出和部署
我想更改 Elastic Beanstalk 实例上 $JAVA_HOME/jre/lib/security/java.security 中的 securerandom.source 值。 如何通过
我应该如何在 AWS 上配置我的 ElasticBeanstalk 以允许 URL 中的编码斜线?(使用 -Dorg.apache.tomcat.util.buf.UDecoder.ALLOW_ENC
我想要将 ElasticBeanstalk 与预定义配置“Node.js”和“64 位 Amazon Linux 2014.09 v1.0.9”一起使用。问题是我的 NodeJS 应用程序使用需要 G
我是一名优秀的程序员,十分优秀!