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