素材牛VIP会员
为何2个laravel站点之间通过CURL请求,获得的env环境信息相同?
 pi***21  分类:PHP代码  人气:730  回帖:1  发布于6年前 收藏

服务器环境:win10 + wamp3(用于本地开发测试)
PHP版本:7.0
Apache版本:2.4.18

共配置了AB两个站点,均采用laravel5.4框架,分别访问均正常。
两个站点在.env文件中,设置APP_NAME的值为:SiteA和SiteB

当分别访问两个站点,echo env('APP_NAME')的值都是正确的,与各自站点相对应。

那么问题来了:
当A站点通过CURL请求B站点,B站点直接返回env('APP_NAME'),这时候值应该是SiteB,可是返回的却是SiteA

这是为什么?是不是哪里配置有问题?
这个问题导致B站点会使用A站点的数据库连接信息,因为都写在.env文件里。

CURL的代码如下:

function httpGet($url)
{
    $curl = curl_init();
    curl_setopt($curl, CURLOPT_HEADER, 0);
    curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, false);
    curl_setopt($curl, CURLOPT_SSL_VERIFYHOST, false);
    curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);
    curl_setopt($curl, CURLOPT_TIMEOUT, 500);
    curl_setopt($curl, CURLOPT_URL, $url);

    $res = curl_exec($curl);
    curl_close($curl);

    return $res;
}

我记得好像在生产环境(linux+nginx)并不存在这个问题,我等会儿再去印证一下。
困扰我几天了,拜托大神给支个招,这里先拜谢!

 标签:phplaravel

讨论这个帖子(1)垃圾回帖将一律封号处理……

Lv7 码师
陌***4 软件测试工程师 6年前#1

这是 windows 系统下的坑,参见 大家有没有遇到多个应用中数据库连接错乱问题?

推荐采用 vagrant 来开发应用。为什么必须使用 Homestead 来开发 Laravel 应用?

 文明上网,理性发言!   😉 阿里云幸运券,戳我领取