如何在 PHP/phpinfo() 中从 Shell 获取环境变量
How to get Environment Variable from Shell in PHP/phpinfo()
我正在尝试使用 SendGrid 的 API,为此我需要使用以下命令访问已添加到根目录的环境变量。
echo "export SENDGRID_API_KEY='YOUR_API_KEY'" > sendgrid.env
echo "sendgrid.env" >> .gitignore
source ./sendgrid.env
这在我的根文件夹中创建了一个 sendgrid.env
文件,将 sendgrid.env
添加到我的 .gitignore
文件,并将 SENDGRID_API_KEY
添加为环境变量。
但是,PHP 的 getenv('SENDGRID_API_KEY')
键没有返回任何内容,PHP 的 phpinfo()
没有将 SENDGRID_API_KEY
反映为环境变量.
暗示您应该使用另一个包来读取 .env
文件。在他们的官方网站上有一个 sample 使用 Dotenv
class 将文件内容加载到环境中:
<?php
require 'vendor/autoload.php';
Dotenv::load(__DIR__);
$sendgrid_apikey = getenv('YOUR_SENDGRID_APIKEY');
不过,他们甚至没有解释 class 的来源。显然,他们的意思是你应该安装 vlucas/phpdotenv
package. Note, that in the current version of this package, the load
method is non-static (it actually was static in early versions):
$dotenv = new Dotenv\Dotenv(__DIR__);
$dotenv->load();
我正在尝试使用 SendGrid 的 API,为此我需要使用以下命令访问已添加到根目录的环境变量。
echo "export SENDGRID_API_KEY='YOUR_API_KEY'" > sendgrid.env
echo "sendgrid.env" >> .gitignore
source ./sendgrid.env
这在我的根文件夹中创建了一个 sendgrid.env
文件,将 sendgrid.env
添加到我的 .gitignore
文件,并将 SENDGRID_API_KEY
添加为环境变量。
但是,PHP 的 getenv('SENDGRID_API_KEY')
键没有返回任何内容,PHP 的 phpinfo()
没有将 SENDGRID_API_KEY
反映为环境变量.
暗示您应该使用另一个包来读取 .env
文件。在他们的官方网站上有一个 sample 使用 Dotenv
class 将文件内容加载到环境中:
<?php
require 'vendor/autoload.php';
Dotenv::load(__DIR__);
$sendgrid_apikey = getenv('YOUR_SENDGRID_APIKEY');
不过,他们甚至没有解释 class 的来源。显然,他们的意思是你应该安装 vlucas/phpdotenv
package. Note, that in the current version of this package, the load
method is non-static (it actually was static in early versions):
$dotenv = new Dotenv\Dotenv(__DIR__);
$dotenv->load();