Problém na produkčním serveru – nette se snaží připojit k DB z local configu
- Mira8
- Člen | 36
Ahoj,
mám problém při nasazení webu na produkční server. Nette se mi stále
snaží připojit k databázi definované v config.local.neon. Kde
dělám chybu?
Díky moc za pomoc!
<?php
require __DIR__ . '/../vendor/autoload.php';
$configurator = new Nette\Configurator;
$configurator->setDebugMode('80.250.18.198');
$configurator->enableDebugger(__DIR__ . '/../log');
$configurator->setTempDirectory(__DIR__ . '/../temp');
$configurator->createRobotLoader()
->addDirectory(__DIR__)
->register();
$configurator->addConfig(__DIR__ . '/config/config.neon');
$configurator->addConfig(__DIR__ . '/config/config.local.neon');
$container = $configurator->createContainer();
return $container;
V config.local.neon mám:
parameters:
database:
dsn: "mysql:host=localhost:8889;dbname=***"
user: "***"
password: "***"
- Lukeluha
- Člen | 130
Ono to není z toho možná jasně zřetelné, ale ten důvod, proč je to takto rozdělené (v config.neon konfigurace pro celou aplikaci v nezávislosti na prostředí a config.local.neon konkrétní lokální přístupové údaje, atd.) je z důvodu bezpečnosti. Mělo by to být tak, jak říká @Oli, na serveru máš config.local.neon s údajema pro server. Soubor config.local.neon by měl být úplně vyřazen z verzování (.gitignore, atd.). Co se týče té bezpečnosti, představ si, že bys měl jeden konfigurák a v něm přístupy do db na u sebe i na serveru (tak to řešily staré verze Nette – config byl řešen pomocí sekcí). Pokud by ti někdo ukradl počítač nebo budeš jen ukazovat kamarádovi projekt, na kterém právě děláš, naprosto jednoduše se dostane k DB přístupům na server, což samozřejmě je průser. Z toho důvodu má každé prostředí svůj config.local :)