Nejde spustit nette na subdoméně

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

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',
maarlin
Člen | 207
+
0
-

Pokud Laděnka označila řádek s NEnvironment::loadConfig(), tak je dost pravděpodobné, že je problém v ini souboru. Můžeš sem hodit jeho obsah?

OT: Promazal jsi po updatu Nette temp adresář? :)

eldest
Člen | 58
+
0
-

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
_Martin_
Generous Backer | 679
+
0
-

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ě).

eldest
Člen | 58
+
0
-

Cesta je nastavena správně a práva jsou také nastavena

Editoval eldest (29. 9. 2010 22:36)

eldest
Člen | 58
+
0
-

Tak jsem to vyřešil, ale nevím jestli správně. Cestu k temp jsem nastavil na složku cache ve složce temp. Co vy na to ?

maarlin
Člen | 207
+
0
-

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

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 ?

maarlin
Člen | 207
+
0
-

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

eldest
Člen | 58
+
0
-

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

Mrkněte sem.

eldest
Člen | 58
+
0
-

No to už jsem pročítal, ale nějak jsem nepochopil, co mám udělat.

eldest
Člen | 58
+
0
-

Už jsem to vyřešil. 777 se musí nastavit pro složku TEMP a VŠECHNY vnořené složky i soubory

_Martin_
Generous Backer | 679
+
0
-

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í:

  1. nastav korektně tuto konstantu
  2. promaž složku temp
  3. 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)