Nette 2.1 RC4 – Problém se SESSION a vypnutým ini_set()
- vymak
- Člen | 92
Ahoj, s Nette teprve začínám.
Už jsem napsal jeden web ve verzi Nette 2.0.13 a po dlouhém experimentování
se mi podařilo rozchodit web i na hostingu (cesky-hosting.cz), kde mají
zakázanou funcki ini_set()
Nyní jsem se rozhodl předělat web na nejnovější verzi Nette (2.1 RC4), ale po předělání jsem zjistil, že při pokusu o nastartování SESSION dojde k vyjímce:
Nette\NotSupportedException
Required function ini_set() is disabled.
Zde ještě přikládám kompletní HTML stránku s exception :)
http://vymakdevel.cz/exception.html
Díky za případné rady jak to rozchodit :)
Editoval vymak (25. 12. 2013 21:18)
- David Grudl
- Nette Core | 8233
V té verzi 2.0.13 jsi měl nastavenou proměnnou
Framework::$iAmUsingBadHost
?
- vymak
- Člen | 92
Ano, měl jsem jí nastavenou, ale v nové verzi již není
Výpis bootstrap.php z verze 2.0.13
// Load Nette Framework or autoloader generated by Composer
require __DIR__ . '/../libs/autoload.php';
Nette\Framework::$iAmUsingBadHost = TRUE;
$configurator = new Nette\Config\Configurator;
// Enable Nette Debugger for error visualisation & logging
$configurator->setDebugMode(array('127.0.0.1'));
$configurator->enableDebugger(__DIR__ . '/../log');
// Specify folder for cache
$configurator->setTempDirectory(__DIR__ . '/../temp');
// Enable RobotLoader - this will load all classes automatically
$configurator->createRobotLoader()
->addDirectory(__DIR__)
->addDirectory(__DIR__ . '/../libs')
->register();
// Create Dependency Injection container from config.neon file
$configurator->addConfig(__DIR__ . '/config/config.neon');
$configurator->addConfig(__DIR__ . '/config/config.local.neon', $configurator::NONE); // none section
$configurator->onCompile[] = function ($configurator, $compiler) {
$compiler->addExtension('dibi', new DibiNetteExtension);
};
$container = $configurator->createContainer();
Výpis bootstrap.php z verze 2.1 RC4
// Load Nette Framework or autoloader generated by Composer
require __DIR__ . '/../libs/autoload.php';
$configurator = new Nette\Config\Configurator;
// Enable Nette Debugger for error visualisation & logging
$configurator->setDebugMode(array('127.0.0.1'));
$configurator->enableDebugger(__DIR__ . '/../log');
// Specify folder for cache
$configurator->setTempDirectory(__DIR__ . '/../temp');
// Enable RobotLoader - this will load all classes automatically
$configurator->createRobotLoader()
->addDirectory(__DIR__)
->addDirectory(__DIR__ . '/../libs')
->register();
// Create Dependency Injection container from config.neon file
$configurator->addConfig(__DIR__ . '/config/config.neon');
$configurator->addConfig(__DIR__ . '/config/config.local.neon', $configurator::NONE); // none section
$container = $configurator->createContainer();
Editoval vymak (25. 12. 2013 21:50)
- David Grudl
- Nette Core | 8233
A stále používáš špatný hosting? :-) Ok, dal jsem tam podmínku, že ini_set se bude volat jen v nutných případech.
Jinak tohle je fakt spíš na řešení s adminem Českého hostingu (a ani to nezkoušej, je to bez šance) nebo na přechod jinam.
- vymak
- Člen | 92
Bohužel používám a ještě dlouho používat budu :D Mám to zaplaceno na 10 let (zakoupeno v akci).
Řešit s podporou jsem to už zkoušel ale jediné co mi doporučili tak přejít na virtuální server :D Časem ale stejně budu muset řešit přesun někam jinam, protože chci využívat veškeré možnosti Nette a to mi můj stavající hosting bohužel neumožňuje :(
Díky, a bylo by možné zaslat upravený soubor abych to mohl otestovat? :)
EDIT: Tak už jsem to našel na Githubu :) Jdu to otestovat :)
Editoval vymak (25. 12. 2013 22:00)
- vymak
- Člen | 92
Tak už jsem se trochu posunul, tentokrát trochu jiná chyba:
http://www.vymakdevel.cz/…ba02d3b.html
Výtah z config.neon
common:
php:
date.timezone: Europe/Prague
# zlib.output_compression: yes
nette:
application:
errorPresenter: Error
debugger:
email: muj@email.cz
session:
expiration: 14 days
extensions:
dibi: DibiNette21Extension
Když odstraním nastavení expirace session je chyba stejná akorát s jinou hodnotou:
Nette\NotSupportedException
Unable to set ‚session.gc_maxlifetime‘ to ‚10800‘ because function
ini_set() is disabled.
- David Grudl
- Nette Core | 8233
Přidej co configu za expiration ještě
nette:
session:
gc_maxlifetime: null