gpt4 book ai didi

php - 来自一个域而非其他域的 API 调用的错误代码未定义索引 :

转载 作者:可可西里 更新时间:2023-10-31 22:15:45 26 4
gpt4 key购买 nike

有时,在进行任何 API 调用时,我的域 (example.test.org) 会向我显示错误。

"{"error":{"code":500,"message":"Undefined index: DB_HOST","file":"\/var\/www\/app\/config\/production\/database.php","line":7}}".

但是使用我本地机器的公共(public) IP,它可以正常工作。它会从一个域而不是另一个域返回错误的任何原因? API 在 Laravel 4.2 上运行。

database.php 的输出是

<?php

return array(
'default' => 'pgsql',
'connections' => array(
'pgsql' => array(
'host' => $_ENV['DB_HOST'],
'port' => $_ENV['DB_PORT'],
'database' => $_ENV['DB_NAME'],
'username' => $_ENV['DB_USER'],
'password' => $_ENV['DB_PASS'],
),
),
);

这些值来自/var/www/.env.php 看起来像

return array(
'DB_HOST' => 'my-app.cvrrctfasmvk.us-east-1.rds.amazonaws.com',
'DB_PORT' => '*****',
'DB_NAME' => '**************',
'DB_USER' => '**********',
'DB_PASS' => '***********',
'SMTP_HOST' => '*******************',
'SMTP_USER' => '***********************',
'SMTP_PASS' => '********************************',
'AWS_KEY' => '****************************',
'AWS_SECRET' => '*******************',
'AWS_QUEUE' => '*****************************************',
'FB_APP_ID' => '*****************',
'FB_APP_SECRET' => '*********************'
);

DB Host 文件看起来像这样。当然,可识别的值被更改为 x

<?php

return array(
'DB_HOST' => 'my-app-.xxxxxx.us-east-1.xxx.amazonaws.com',
'DB_PORT' => 'xxxx',
'DB_NAME' => 'xxxx_app_xxx_db',
'DB_USER' => 'xxxx',
'DB_PASS' => 'xxxx',
'SMTP_HOST' => 'email-xxx.xxxx.amazonaws.com',
'SMTP_USER' => 'xxxxxxx',
'SMTP_PASS' => 'xxxx',
'AWS_KEY' => 'xxx',
'AWS_SECRET' => 'xxxx',
'AWS_QUEUE' => 'https://sqs.xxxxx.amazonaws.com/xxxx',
'FB_APP_ID' => 'xxxxx',
'FB_APP_SECRET' => 'xxxx'
);

看起来它在读取/var/www/.env.php 文件时遇到了问题。由于数组中的第一项返回错误。

最佳答案

你最好的办法是在你的 php.ini 文件中检查你的 variables_order 字符串,它确实控制了 super 全局加载的顺序以及你想要的变量,很可能您在 variables_order 字符串中遗漏了一个 E。

来自 PHP 手册页:

variables_order string Sets the order of the EGPCS (Environment, Get, Post, Cookie, and Server) variable parsing. For example, if variables_order is set to "SP" then PHP will create the superglobals $_SERVER and $_POST, but not create $_ENV, $_GET, and $_COOKIE. Setting to "" means no superglobals will be set.

在这里阅读更多 PHP man pages

我认为您只在本地加载 $_ENV,因为您可能有不同的 php.ini 文件。

关于php - 来自一个域而非其他域的 API 调用的错误代码未定义索引 :,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41729792/

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