heroku上带有远程数据库的symfony 4应用程序

heroku上带有远程数据库的symfony 4应用程序,heroku,symfony4,remote-access,proxies,Heroku,Symfony4,Remote Access,Proxies,我真的需要一些帮助,呵呵 好的,我得到了一个symfony4应用程序,它在本地环境中工作得非常好 我在heroku上安装了该应用程序,但我想在我的web主机上访问我的Mysql数据库 为了做到这一点,我必须在heroku上安装Fixie应用程序,使其具有两个ip地址,并能够将这些地址列入白名单,以便远程访问我的数据库 该应用程序运行良好,但如果我在数据库中访问任何需要调用的链接,就会超时 我认为问题出在我的index.php文件中,在安装Fixie时,必须向信任代理添加代码 下面是我现在在ind

我真的需要一些帮助,呵呵 好的,我得到了一个symfony4应用程序,它在本地环境中工作得非常好

我在heroku上安装了该应用程序,但我想在我的web主机上访问我的Mysql数据库

为了做到这一点,我必须在heroku上安装Fixie应用程序,使其具有两个ip地址,并能够将这些地址列入白名单,以便远程访问我的数据库

该应用程序运行良好,但如果我在数据库中访问任何需要调用的链接,就会超时

我认为问题出在我的index.php文件中,在安装Fixie时,必须向信任代理添加代码

下面是我现在在index.php文件中的内容

<?php

use App\Kernel;
use Symfony\Component\Debug\Debug;
use Symfony\Component\HttpFoundation\Request;

require dirname(__DIR__).'/config/bootstrap.php';

if ($_SERVER['APP_DEBUG']) {
    umask(0000);

    Debug::enable();
}

$trustedProxies = $_SERVER['TRUSTED_PROXIES'] ?? $_ENV['TRUSTED_PROXIES'] ?? false;
$trustedProxies = $trustedProxies ? explode(',', $trustedProxies) : [];
if($_SERVER['APP_ENV'] == 'prod') $trustedProxies[] = $_SERVER['REMOTE_ADDR'];
if($trustedProxies) {
    Request::setTrustedProxies($trustedProxies, Request::HEADER_X_FORWARDED_AWS_ELB);
}

if ($trustedHosts = $_SERVER['TRUSTED_HOSTS'] ?? $_ENV['TRUSTED_HOSTS'] ?? false) {
    Request::setTrustedHosts([$trustedHosts]);
}

$kernel = new Kernel($_SERVER['APP_ENV'], (bool) $_SERVER['APP_DEBUG']);
$request = Request::createFromGlobals();
$response = $kernel->handle($request);
$response->send();
$kernel->terminate($request, $response);
当你在heroku中安装fixie时,你必须添加一些东西,这是他们为php提供的示例,但我不知道如何在我的symfony应用程序中做到这一点

PHP cURL is the easiest way to get your PHP application working correctly with Fixie. Here’s how:

<?php
  function proxyRequest() {
    $fixieUrl = getenv("FIXIE_URL");
    $parsedFixieUrl = parse_url($fixieUrl);

    $proxy = $parsedFixieUrl['host'].":".$parsedFixieUrl['port'];
    $proxyAuth = $parsedFixieUrl['user'].":".$parsedFixieUrl['pass'];

    $ch = curl_init($url);
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
    curl_setopt($ch, CURLOPT_PROXY, $proxy);
    curl_setopt($ch, CURLOPT_PROXYUSERPWD, $proxyAuth);
    curl_close($ch);
  }

  $response = proxyRequest();
  print_r($response);
?>


这就是我在标题中的全部内容

使用heroku控制台,您可以登录到服务器上运行的mysql吗?我使用heroku控制台,如何测试数据库的连接?我不确定您会怎么做,但通常PDOException与连接到数据库有关。它无法连接到数据库,它一直在尝试,直到达到超时。再次检查连接字符串和修复文档。他们可能会有一些帮助。感谢您的提示,修复文档显示了要添加的内容,但不确定如何将其放入我的symfony应用程序中,我将继续尝试:)
PHP cURL is the easiest way to get your PHP application working correctly with Fixie. Here’s how:

<?php
  function proxyRequest() {
    $fixieUrl = getenv("FIXIE_URL");
    $parsedFixieUrl = parse_url($fixieUrl);

    $proxy = $parsedFixieUrl['host'].":".$parsedFixieUrl['port'];
    $proxyAuth = $parsedFixieUrl['user'].":".$parsedFixieUrl['pass'];

    $ch = curl_init($url);
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
    curl_setopt($ch, CURLOPT_PROXY, $proxy);
    curl_setopt($ch, CURLOPT_PROXYUSERPWD, $proxyAuth);
    curl_close($ch);
  }

  $response = proxyRequest();
  print_r($response);
?>

Request URL: https://jugement.herokuapp.com/public
Referrer Policy: no-referrer-when-downgrade