Проблема с Guzzle Symfony GET-запрос с использованием среды принятия в Symfony3.4 для теста Beat - PullRequest
0 голосов
/ 09 марта 2019

У меня есть такая конфигурация nginx:

server {
    server_name symfony.dew;
    root /var/www/symfony/web;
    location / {
    try_files $uri @rewriteapp;
    }
    location @rewriteapp {
    rewrite ^(.*)$ /app.php/$1 last;
    }
    location ~ ^/(app|app_dev|app_acceptance|app_test|config)\.php(/|$) {
    fastcgi_pass php-upstream;
    fastcgi_split_path_info ^(.+\.php)(/.*)$;
    include fastcgi_params;
    fastcgi_param SCRIPT_FILENAME
    $document_root$fastcgi_script_name;
    fastcgi_param HTTPS off;
    }
    error_log /var/log/nginx/symfony_error.log;
    access_log /var/log/nginx/symfony_access.log;

} 

Когда я тестирую свой API с помощью URL-адреса Почтальона: localhost: 8080 / app_acceptance / api / v1 / что-то / 1, он отлично работает и ищет данные, используя xxx_acceptanceбазы данных, но когда я делаю запрос в жрете:

$this->client = new Client(['base_uri' => 'http://nginx/app_acceptance.php', 'timeout' => 2.0]);

он как-то перенаправляется в app.php, и запрос отправляется в базу данных xxx, а не в xxx_acceptance.У меня в docker-compose "nginx", поэтому я использую его, когда создаю ссылку для жрет.Я использую последнюю версию Docker, Behat и Guzzle.

1 Ответ

0 голосов
/ 10 марта 2019

Я думаю, что порт отсутствует в базовом URL:

$this->client = new Client([
    'base_uri' => 'http://nginx:8080/app_acceptance.php',
    'timeout' => 2.0,
]);
...