运行PHP脚本时,无法访问Heroku环境变量。在下面的图片上,您可以看到我有变量TEST_VAR
。
下面的代码片段应输出此变量,但我什么也没得到:
$url = getenv('TEST_VAR');
echo $url;
我尝试了此操作并收到“错误!”,因此getenv('TEST_VAR')
是false
:
if (getenv('TEST_VAR')) {
$url = getenv('TEST_VAR');
echo $url;
} else {
die('Error!');
}
在此图片中,您可以看到两个代码片段的输出(空字符串和错误!)。
答案 0 :(得分:0)
看起来您正在本地命令行上运行该代码。 heroku config:set
为Heroku上的应用设置environment variables 。它对您的本地环境没有任何作用。
要在本地使用环境变量,必须以其他方式设置它们。您可以使用操作系统提供的任何工具手动完成此操作,但是Heroku CLI还提供了a heroku local
command,方便地reads environment variables from a file called .env
and populates them for you。
只需创建一个包含变量的.env
文件,例如
TEST_VAR=hello_world
,然后通过heroku local
运行代码。默认情况下,它将按照web
中的定义运行您的Procfile
进程。如果您已经使用heroku config:set
设置了变量,则可以copy them to your .env
file:
heroku config:get TEST_VAR >> .env
请注意,the .env
file should not be committed to your repository。它仅供本地使用。在Heroku上,您应该继续使用heroku config:set
设置配置变量。