Nette 2.0.3 – nejde Debugger (Laděnka) v produkčním prostředí

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

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.

Milo
Nette Core | 1283
+
0
-

Neplést si prostředí a režim.

Daniel Kurečka
Člen | 1
+
0
-

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
+
0
-

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é.

saimons
Člen | 293
+
0
-

Super vlakno, konecne jsem po delsim hledani nasel jak zprovoznit ladenku na ostrem serveru v novem Nette (do ted jsem to nastesti nepotreboval). Jeste skoda, ze to neni uvedeno v dokumentaci.