gpt4 book ai didi

php - AWS ElasticBeanstalk ENV Vars 不工作

转载 作者:可可西里 更新时间:2023-11-01 12:19:12 25 4
gpt4 key购买 nike

我使用 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 变量似乎没有出现。

enter image description here

还有什么我需要做的吗?


更新:

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/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com