Chyba při načítání config

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

Zdravím.

Už jsem zkoušel vše a teď už my zbejvá jen zde forum.

Takže na lokalu my to funguje OK. Ale když to přesunu na hosting tak to nefunguje. Laděnka hlásí :

Unable initialize critical section.

Line 20:
Line 21:    // Načtení konfiguračních souboru,
Line 22:    NEnvironment::loadConfig();

V config.ini

[common]
; PHP konfigurace,
php.date.timezone = "Europe/Prague"
php.default_charset = "UTF-8"

; Nastavení TEMP a LOG adresáře,
variable.tempDir = %appDir%/../../user/_temp
variable.logDir = %appDir%/../../user/_log

; Služby,
service.Nette-Security-IAuthenticator = Auth
service.Nette-Loaders-RobotLoader.option.directory[] = %appDir%
service.Nette-Loaders-RobotLoader.option.directory[] = %libsDir%
service.Nette-Loaders-RobotLoader.option.directory[] = %modulesDir%
service.Nette-Loaders-RobotLoader.run = TRUE

[development < common]

[production < common]

Pokusem jsem zjistil že pokud zapoznámkuju

service.Nette-Loaders-RobotLoader.run = TRUE

Tak problém zmizí, ale zase se objeví problém s tím že se nespustí NetteRobot.

Používám poslední verzi Nette 2 (NetteFramework-2.0alpha-PHP5.2)

Dik za rady

nAS
Člen | 277
+
0
-

Máš zapisovatelný temp?

webdata
Člen | 153
+
0
-

jj, mám, vše už bylo zkontrolováno.

nAS
Člen | 277
+
0
-

Tak se podívej do zdrojáku kde se vyhazuje tahle chyba. Je to když se nepodaří vytvořit soubor, který zamyká kritickou sekci. Takže bych tak tipnul, že to buď temp opravdu zapisovatelný není, nebo ho máš nastavený jinam, než si myslíš.

Lopo
Člen | 277
+
0
-

u mna pomohlo v index.php definovanie TEMP_DIR a nastavenie jeho prav na 777 – inac sa to snazi zapisovat priamo do LIBS_DIR/Nette/Utils/criticalSection.lock – co samozrejme kvoli pravam neprejde

nechapem preco David v pripade nedefinovaneho TEMP_DIR-u sa snazi zapisovat priamo do Nette lib diru a nie niekde do diru s cache

webdata
Člen | 153
+
0
-

Lopo: Asic máš pravdu. Ještě to prověřím ale možna to bude tím.
Laděnka hlasí chybu:

HP Warning: fopen(.../libs/Nette/Utils/criticalSection.lock): failed to open stream: Permission denied in .../libs/Nette/Utils/Tools.php:174
webdata
Člen | 153
+
0
-

Takže už se mi criticalSection.lock vytváří v tempu, ale pořád se nespustí NetteRobot

webdata
Člen | 153
+
0
-

Takze nevím, Na lokalu ok, na serveru chyba. Nette není asi pro mne, pořád řešit proč něco nejde, když jinde to jde. Když jsem dělal v codeigniter, tak jsem takovéhle problémy neměl.

A hostingem to taky není, jediné co na hostingu neni je imagemagic.

Aplikaci dělám na lokalu a abych při každém řádku testoval kde to jde a kde ne. To mi fakt práci neurychlí. Stačí že musím ladit vzhled pro IE6 – 8, FF, O, Chrome

arron
Člen | 464
+
0
-

Ja mam zatim takove zkusenosti, ze vzdycky, kdyz jsem s Nette resil, ze mi neco nejede, tak pokazde byla chyba mezi zidli a klavesnici…

Filip Procházka
Moderator | 4668
+
0
-

samozřejmě je chyba mezi židlí a klávesnicí

nastavit TEMP_DIR, zapisovatelnost do TEMP_DIR a smazat soubor „temp/criticalSection.lock“

pak to pojede

pekelnik
Člen | 462
+
0
-
  1. Souhlasím s tím že hláška „Unable to enter critical section.“ je víc než WTF.
  2. Také nechápu proč se v případě nenastaveného tempu snaží zapisovat do __DIR__ místo aby to vyhodilo vyjímku.
webdata
Člen | 153
+
0
-

No jakž tak to jde, jen do te doby než promáznu temp.

Jedinej dotaz?

Proč se vytváří soubor criticalSection.lock, jakej je jedo význam?

webdata
Člen | 153
+
0
-

No jasně už to vidím.

TEMP_DIR je novinka verze NETTE 2

Filip Procházka
Moderator | 4668
+
0
-

v aplikaci, pokud něco složitě generuješ, nebo voláš nějaký šílený proces, měl bys zavolat Tools:enterCriticalSection() a pak z ní zase vylézt. Je to performance booster, čili když je některý request aplikace v „kritické sekci“ tak ostatní, které by do nějaké „kritické sekce“ taky chtěly vstoupit, musí počkat, dokud nezískají criticalSection.lock :)