首页 > 解决方案 > 使用 curl_init() 调用同一域和服务器上的其他项目

问题描述

我在同一个域和服务器上使用 use curl_init() 时遇到问题。我在使用 xampp(窗口)运行的同一环境中有 2 个 Laravel 项目。项目 A 是 API 使用数据库名称 X(RDS) 项目 B 调用 API 使用数据库名称 Y(MySql)

示例网址

项目 A ww.example/project_a/

项目 B ww.example/project_b/

问题

项目 B 使用项目 A 的 curl_init() 调用 API 从数据库 X(RDS) 获取数据,但项目 A 尝试在 MySql(项目 B 连接) 中查找数据库 X,然后出错。

我已经尝试让这两个项目在不同的服务器上运行它可以工作。我必须配置一些东西吗?

这里 .env 两者

项目A

APP_NAME= A
APP_ENV=local
APP_KEY=XXXXXXXXXXXXX
APP_DEBUG=true
APP_LOG_LEVEL=debug
APP_URL=http://localhost

DB_CONNECTION=rds
DB_HOST=rds_url
DB_PORT=3306
DB_DATABASE=X
DB_USERNAME=xx
DB_PASSWORD=xx

项目 B

APP_NAME_B= B
APP_ENV_B=local
APP_KEY_B=YYYYYYYYYYYYY
APP_DEBUG_B=false
APP_LOG_LEVEL_B=debug
APP_URL_B=http://localhost

DB_CONNECTION_B=mysql
DB_HOST_B=127.0.0.1
DB_PORT_B=3306
DB_DATABASE_B=Y
DB_USERNAME_B=yy
DB_PASSWORD_B=yy

卷曲

$curl = curl_init();
        curl_setopt_array($curl, array(
        CURLOPT_URL => "http://ww.example/project_a/booking-box/get-data-by-api",
        CURLOPT_COOKIESESSION => true,
        CURLOPT_RETURNTRANSFER => true,
        CURLOPT_ENCODING => "",
        CURLOPT_MAXREDIRS => 10,
        CURLOPT_TIMEOUT => 30,
        CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
        CURLOPT_CUSTOMREQUEST => "GET",          
        CURLOPT_HTTPHEADER => array(
                    //"authorization: ",
                    "cache-control: no-cache",
                    "content-type: Application/json"
                ),
                ));
        curl_setopt($curl, CURLOPT_SSL_VERIFYHOST, false);
        curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, false);
        $response = curl_exec($curl);
        $err = curl_error($curl);
        curl_close($curl);

错误因为项目A在Mysql中找不到X

 "SQLSTATE[HY000] [1049] Unknown database 'X' (SQL: select * from `...` where `...` = 1 limit 1)"

也已经尝试过但无法正常工作 同一服务器上的两个 Laravel 应用程序相互冲突

标签: phplaravelxampp

解决方案


推荐阅读