Установки Nginx w / 2 Symfony не могут использовать отдельные базы данных - PullRequest
0 голосов
/ 01 ноября 2018

Запуск одного экземпляра nginx на V-сервере. Я хочу иметь две отдельные установки Symfony:

Первая установка выполняется несколько месяцев назад, вторая была установлена ​​недавно и является общедоступной, НО использует подключение к базе данных первой при обработке через консоль!

Nginx

symfony1.conf

...
location ~ ^/index\.php(/|$) {
        fastcgi_pass 127.0.0.1:9000;
        fastcgi_split_path_info ^(.+\.php)(/.*)$;
        include fastcgi_params;

        fastcgi_param APP_ENV prod;
        fastcgi_param APP_SECRET XXX;
        fastcgi_param DATABASE_URL "mysql://user:password@127.0.0.1:3306/symfony1_db";
    ...
}
...

symfony2.conf

...
location ~ ^/index\.php(/|$) {
        fastcgi_pass 127.0.0.1:9000;
        fastcgi_split_path_info ^(.+\.php)(/.*)$;
        include fastcgi_params;

        fastcgi_param APP_ENV prod;
        fastcgi_param APP_SECRET XXX;
        fastcgi_param DATABASE_URL "mysql://user:password@127.0.0.1:3306/symfony2_db";
    ...
}
...

Когда я пытаюсь создать схему для второй установки (php /var/www/html/smyfony2/bin/console doctrine:database:create, выдается эта ошибка:

Не удалось создать базу данных symfony1_db для подключения с именем по умолчанию

Моя идея состояла в том, чтобы изменить

fastcgi_param DATABASE_URL "mysql://user:password@127.0.0.1:3306/symfony2_db";

до

fastcgi_param DATABASE_URL_2 "mysql://user:password@127.0.0.1:3306/symfony2_db";

но

  • это нужно?

  • это вообще возможно?

  • где бы я сказал это моей установке Symfony

Любая подсказка высоко ценится.

Пояснение:

Все работает нормально, когда я захожу на сайт через браузер, это просто сбивает с толку что-то в моей консоли.

1 Ответ

0 голосов
/ 01 ноября 2018

Ваша конфигурация nginx не применяется, если вы вызываете команду console в своем терминале и, следовательно, не имеете ничего общего с вашей проблемой.

Вы можете решить эту проблему, добавив пакет symfony/dotenv в свое приложение.

composer require symfony/dotenv

Затем включите компонент внутри вашего bin/console файла:

(new Dotenv())->load(__DIR__.'/../.env');

Теперь создайте два .env файла с правильными параметрами базы данных / переменными среды в корневой папке обоих ваших приложений.

# .env
DATABASE_URL='mysql://user:password@127.0.0.1:3306/symfony2_db'

Кроме того, вы можете использовать такой инструмент, как direnv , чтобы загружать различные переменные окружения, зависящие от текущего рабочего каталога вашей оболочки.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...