Nejde spustit nette na subdoméně
- eldest
- Člen | 58
Předem chci říct, že minulá verze mi zde šla. Takže asi bude chyba v nějakém nastavení.
Po nakopírování a když chci spusti to vyhodí laděnku s chybou:
InvalidStateException
Unable initialize critical section.
A tento kus kódu:
Line 15:
Line 16: // Step 2: Configure environment
Line 17: // 2a) enable NDebug for better exception and error visualisation
Line 18: NDebug::$strictMode = TRUE;
Line 19: NDebug::enable();
Line 20:
Line 21: // 2b) load configuration from config.ini file
Line 22: NEnvironment::loadConfig(); ->> Tuto řádku označí
Line 23:
Line 24: dibi::connect(array(
Line 25: 'driver' => 'mysql',
Line 26: 'host' => 'localhost',
Line 27: 'username' => 'passlercz',
Line 28: 'password' => 'david057passler#',
Line 29: 'database' => 'passlercz',
- eldest
- Člen | 58
Skeleton je celý nový.
;
; SECURITY WARNING: it is CRITICAL that this file & directory are NOT accessible directly via a web browser!
;
; If you don't protect this directory from direct web access, anybody will be able to see your passwords.
; https://nette.org/en/security-warning
;
[common]
; PHP configuration
php.date.timezone = "Europe/Prague"
;php.session.save_path = "%tempDir%/sessions"
;php.zlib.output_compression = yes
;php.default_charset = "UTF-8"
; services
service.Nette-Security-IAuthenticator = UsersModel
service.Nette-Loaders-RobotLoader.option.directory[] = %appDir%
service.Nette-Loaders-RobotLoader.option.directory[] = %libsDir%
service.Nette-Loaders-RobotLoader.run = TRUE
[production < common]
; common database connection
[development < production]
; database options in development mode
- maarlin
- Člen | 207
_Martin_ napsal(a):
Tuším, že se to tu dnes někde řešilo – šlo o nastavení temp cesty nebo něco takového, zkrátka že Nette nemohlo vytvořit soubor zámku pro critical section (nebyla práva k zápisu nebo nebyla nastavená ta cesta – už nevím přesně).
Ano, ale to by mělo vyhodit chybu s nenalezením proměnné tempDir… Dnes
jsem na to taky narazil, když jsem updatoval starší Nette na aktuální.
Stačilo před inicializaci ini připsat toto:
NEnvironment::setVariable('tempDir', APP_DIR . '/temp'); // Dle nového Skeletonu asi spíš APP_DIR . '/../temp'
Editoval maarlin (29. 9. 2010 22:46)
- eldest
- Člen | 58
maarlin napsal(a):
_Martin_ napsal(a):
Tuším, že se to tu dnes někde řešilo – šlo o nastavení temp cesty nebo něco takového, zkrátka že Nette nemohlo vytvořit soubor zámku pro critical section (nebyla práva k zápisu nebo nebyla nastavená ta cesta – už nevím přesně).
Ano, ale to by mělo vyhodit chybu s nenalezením proměnné tempDir… Dnes jsem na to taky narazil, když jsem updatoval starší Nette na aktuální.
Stačilo před inicializaci ini připsat toto:NEnvironment::setVariable('tempDir', APP_DIR . '/temp');
Určitě APP_DIR když zanechám adresářovou strukturu, jaká je ?
- eldest
- Člen | 58
maarlin napsal(a):
eldest napsal(a):
Určitě APP_DIR když zanechám adresářovou strukturu, jaká je ?Zrovna jsem to vyeditoval… :-) samozřejmě dle tvojí adresářové struktury … tzn. v případě nového skeletonu asi
APP_DIR.'/../temp'
.
Nejde to ani tak. Nevadí, když nechám cestu k tempu na adresáři cache?
- _Martin_
- Generous Backer | 679
Aktualizoval jsi na verzi 2, že? Ta zavádí novou konstantu
TEMP_DIR
. Ta, stejně jako další konstanty, je definována
v souboru index.php
– můžeš se podívat do skeletonu
v distribuci.
Zkus následující:
- nastav korektně tuto konstantu
- promaž složku temp
- nastav jí práva pro zápis
Edit: @eldest: obecně práva musí být u všeho, co vytvoříš ty a ne skript (čili u souborů to nedává smysl, ty by si mělo Nette vytvářet samo, u podsložek nevím, jestli si je Nette vytváří nebo je to na uživateli).
Editoval _Martin_ (29. 9. 2010 23:06)