Nette 2.0.3 – nejde Debugger (Laděnka) v produkčním prostředí
- Odo
- Člen | 48
Zdravím,
nejde mi spustit Laděnka, a to si s tím hraju už dva dny. Vím, že už to tu bylo několikrát, ale žádné navrhované nastavení nepomohlo. Navíc jsou to rady pro předchozí verze, takže se tam jaksi motají názvy metod.
Nahrál jsem na webhosting sandbox Nette 2.0.3/php5.2-noprefix s úpravou
$iAmUsingBadHost = TRUE
ve Framework.php (webhosting nepodporuje ini_set). Jediný způsob, jak se mi podařilo spustit Laděnku, je vložit Debugger:enable do bootstrap.php:
<?php
/**
* My Application bootstrap file.
*/
// Load Nette Framework
require LIBS_DIR . '/Nette/loader.php';
// Configure application
$configurator = new Configurator;
// Enable Nette Debugger for error visualisation & logging
//$configurator->setDebugMode(Configurator::AUTO);
$configurator->enableDebugger(dirname(__FILE__) . '/../log');
Debugger::enable(Debugger::DEVELOPMENT); // <--------------------------------------------------
// Enable RobotLoader - this will load all classes automatically
$configurator->setTempDirectory(dirname(__FILE__) . '/../temp');
$configurator->createRobotLoader()
->addDirectory(APP_DIR)
->addDirectory(LIBS_DIR)
->register();
// Create Dependency Injection container from config.neon file
$configurator->addConfig(dirname(__FILE__) . '/config/config.neon');
$container = $configurator->createContainer();
// Setup router
$container->router[] = new Route('index.php', 'Homepage:default', Route::ONE_WAY);
$container->router[] = new Route('<presenter>/<action>[/<id>]', 'Homepage:default');
// Configure and run the application!
$container->application->run();
což vyhodí redscreen „Warning: ini_set() has been disabled for security reasons“, jenže se vůbec nespustí aplikace. Nastavení
nette:
application:
debugger: true
v config.neon nedělá nic. Odkomentování a úprava
$configurator->setDebugMode(Configurator::DEVELOPMENT);
zobrazuje chybu 500 (takže pořád production).
Omlouvám se za lame dotaz, ale jako začátečník jsem docela čekal, že nastavení takové prkotiny bude triviální. Na druhou stranu je možné, že za to může nejmenovaný lame webhosting… předem díky za jakékoliv rady.
- Daniel Kurečka
- Člen | 1
Odkomentování a úprava
$configurator->setDebugMode(Configurator::DEVELOPMENT);
zobrazuje chybu 500 (takže pořád production).
Problém je v tom že Configurator::DEVELOPMENT vrací string „development“ ale Configurator::setDebugMode() příjmá buď boolean nebo ip serverů kde se má laděnka zobrazovat.
// aktivuje laděnku pouze pro dané ip adresy
$configurator->setDebugMode(array("90.180.45.360", "90.180.45.361"));
// nebo všem
$configurator->setDebugMode(); // = TRUE
// nebo nikomu
$configurator->setDebugMode($configurator::NONE); // = FALSE
$configurator->enableDebugger(__DIR__ . "/../log");
- Odo
- Člen | 48
Napsal jsem špatně svůj dotaz. Mám-li v bootstrap.php
na
serveru (webhostingu) toto:
// Enable Nette Debugger for error visualisation & logging
$configurator->setDebugMode();
$configurator->enableDebugger(dirname(__FILE__) . '/../log');
tak se web „zasekne“ a zobrazuje se jen prázdné okno. Když řádek s
setDebugMode
zakomentuji, objeví se normálně očekávaná
stránka 500 Server error a chyba je zapsaná v logu v adresáři /log.
Na lokálu Laděnka samozřejmě funguje normálně. Dokumentaci i dotazy ostatních jsem si přečetl, ale mně to nějak nechce na webhostingu fungovat, tak prosím o radu. Lézt pokaždé do logu je poněkud nepříjemné.