Nette + VirtualBox + Kdyby/Doctrine

Upozornění: Tohle vlákno je hodně staré a informace nemusí být platné pro současné Nette.
snizemic
Člen | 28
+
0
-

Ahoj, našel jsem tu už ohledně toho nějaké příspěvky, ale jsou staré, tak se ptám na aktuální situaci. Rozběhal jsem Nette ve virtuálním prostředí, ale mám problém s jeho detekcí.
Pokud v bootstrap.php nastavím následující, tak běží všechno v pohodě.

<?php
$configurator->setDebugMode(TRUE);
?>

Ale pokud dám IP adresu virtuálního prostředí, nebo když setDebugMode() nenastavím vůbec,

<?php
$configurator->setDebugMode('192.168.33.10');
?>

tak dostanu 500 Server error. Navíc Doctrine odmítne fungovat a v logu dostanu výpis:
[2016-04-20 10-22-26] Recoverable Error: Argument 1 passed to App\Presenters\HomepagePresenter::__construct() must be an instance of Kdyby\Doctrine\EntityManager, none given, called in /var/www/public/nette-doctrine/temp/cache/Nette.Configurator/Container_dab577110c.php on line 334 and defined in /var/www/public/nette-doctrine/app/presenters/HomepagePresenter.php:17 @ http://local.dev/nette-doctrine/www/ @@ exception--2016-04-19--17-05--7017f21c3f.html

Pokud zadám adresu Admineru http://local.dev/nette-doctrine/www/adminer, tak dostanu samozřejmě hlášku Adminer is available only from localhost. Ale tomu rozumím, proč to tak je.

Doctrine jsem rozběhal podle http://blog.honzacerny.com/…te-framework.

Chápu, že se vlastně snažím o vývoj na „vzdáleném“ serveru, což jsem tady četl, že obecně tak nějak nedoporučujete.
Je tedy cesta, jak to všechno správně nastavit, abych mohl používat lokální virtuální prostředí?
Předem díky za odpovědi!

Editoval snizemic (20. 4. 2016 10:32)

CZechBoY
Člen | 3608
+
0
-

Ten debug režim nastavíš tak jak nastavuješ. Ty ale máš nějakej problém v produkčním režimu…

snizemic
Člen | 28
+
0
-

@CZechBoY Díky za reakci. Nakonec to bylo všechno opravdu jen chybou v konfiguraci. Do setDebugMode() jsem dával špatnou IP adresu. Dával jsem tam SERVER_ADDR místo REMOTE_ADDR.
No a tu výjimku jsem dostával kvůli chybě v config.neon.
Každý den se člověk něco učí :-)

snizemic
Člen | 28
+
0
-

Tak přeci ještě jeden problém s Doctrine. Nesetkal jste se někdo s následující chybou při volání php ./www/index.php orm:info?

Doctrine\DBAL\Exception\ConnectionException: An exception occured in driver: SQLSTATE[HY000] [2002] Nemohlo být vytvořeno žádné připojení, protože cílový počítač je aktivně odmítl.

Jinak mi v Nette Doctrine normálně funguje, dokonce i jiné příkazy typu php ./www/index.php orm:... fungují.

iguana007
Člen | 970
+
0
-

Podle mě máš jen špatně nastavené připojení do databáze … nebo databázi (konkrétně možnosti připojení zdálených klientů), pokud ti databáze běží mimo ten virtuál, tak by si tam určitě neměl mít jako hostname třeba „localhost“, ale IP adresu prostředí, kde ta DB běží.

Editoval iguana007 (26. 4. 2016 13:07)

snizemic
Člen | 28
+
0
-

@iguana007 Díky za hint, ano, máš pravdu, bylo přesně tak, jak píšeš. Databáze ve virtuálu běží, ale naopak já jsem se k ní snažil dostat mimo virtuál. Vyřešeno, moje chyba :-)