Vidim jen prazdnou stranku misto webaplikace

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

Zdravim, nette na localhostu pouzivam bez problemu uz delsi dobu. Dnes jsem ho vsak nainstaloval na server a misto webovych aplikaci se mi zobrazi pouze bila stranka. Podivat se na to muzete napriklad tady:

http://brea.upol.cz/…cument_root/

phpinfo je zde:

http://brea.upol.cz/info.php

a requirements checker tady:

http://brea.upol.cz/…/checker.php

Zkousel jsem take zmenit

<?
Debug::enable()
?>

za

<?
Debug::enable(Debug::DEVELOPMENT)
?>

Ale nepohlo. Mela by se zobrazit ladenka s hlasenim, ze temp neni zapisovatelny, ale misto toho jen bila stranka. Nejake napady?

Blizzy
Člen | 149
+
0
-

Na produkčním serveru lze zapnout zápis chyb do logu a posílání nových chyb e-mailem. Aktivuje se to nějak takto:

Do config.ini přijde:

[common]
variable.logDir = %appDir%/log

Do bootstrap.php přijde:

$emailHeaders = array(
	'From' => 'user@server.tld',
	'To'   => 'user@server.tld',
);
Debug::enable(Debug::DETECT, '%logDir%/php_error.log', $emailHeaders);

Více informací je v dokumentaci Nette\Debug.

Ovšem v tomto případě by bylo lepší přinutit laděnku spolupracovat stejně jako na dev serveru, s tím ale asi nepomůžu.

rezorcinol
Člen | 25
+
0
-

Zapomnel jsem dodat, ze stejny problem je i kdyz si sednu primo k serveru a do prohlizece zadam

http://localhost/…cument_root/

Tak take vidim je bilou stranku – to znamena ze to neni tim, ze bych aplikaci pouzival produkcnim serveru, ne?

ic
Člen | 430
+
0
-

lol to vidim furt

Ondřej Mirtes
Člen | 1536
+
0
-

Zkontroluj, jestli se ke slovu vůbec dostane Nette (např. kontrolou hlavičky X-Powered-By ve Firebugu). Pokud ne, je chyba v .htaccess (nejčastěji RewriteBase direktiva), pokud se ke slovu Nette dostane, dal bych do bootstrapu toto:

Environment::setMode(Environment::DEVELOPMENT);
Environment::getApplication()->catchExceptions = false;
Debug::enable(Debug::DEVELOPMENT);

Editoval LastHunter (4. 9. 2009 19:32)

ic
Člen | 430
+
0
-

V tomto konkrétním případě bych si tipnul na špatnou cestu k nette loaderu v brea.upol.cz/nette/examples/CD-collection/app/bootstrap.php

Editoval ic (4. 9. 2009 20:11)

rezorcinol
Člen | 25
+
0
-

ic:

v bootstrap.php je tato cesta

<?php
require dirname(__FILE__) . '/../../../Nette/loader.php';
?>

Nemenil jsem ji a podle me i sedi.

LastHunter

Myslis hlavicku odpovedi na HTTP request? Pokud ano, tak tam vubec nic neni viz:

http://brea.upol.cz/…ta/nette.png

V souboru http://brea.upol.cz/…ot/.htaccess

je toto:

# disable directory listing
Options -Indexes

# mod_rewrite
<IfModule mod_rewrite.c>
        RewriteEngine On
        # RewriteBase /

        # front controller
        RewriteCond %{REQUEST_FILENAME} !-f
        RewriteCond %{REQUEST_FILENAME} !-d
        RewriteRule !\.(pdf|js|ico|gif|jpg|png|css|rar|zip|tar\.gz)$ index.php [L]
</IfModule>

V phpinfo() je v sekci Loades modules modul mod_rewrite, takze to by melo byt taky ok.

Pro jistotu sem jeste hodim apache nastaveni slozky /home/user/www ve ktere se web nachazi:

DocumentRoot /home/user/www
<Directory />
        Options FollowSymLinks
        AllowOverride None
</Directory>
<Directory /home/user/www/>
        Options Indexes FollowSymLinks MultiViews
        AllowOverride All
        Order allow,deny
        allow from all
</Directory>
nAS
Člen | 277
+
0
-

Zkoušel jsi odkomentovat to RewriteBase / ?

rezorcinol
Člen | 25
+
0
-

nAS napsal(a):

Zkoušel jsi odkomentovat to RewriteBase / ?

Odkomentovano… Stale to same:/

jasir
Člen | 746
+
0
-

Zkus requirements checker (v distribuci, adresář tools)

Ola
Člen | 385
+
0
-

Zkus v htaccess RewriteBase /nette/examples/CD-collection/document_root/

rezorcinol
Člen | 25
+
0
-

jasir

viz muj prvni prispevek: http://brea.upol.cz/…/checker.php

Ola

Zkousel jsem tam dat

RewriteBase /nette/examples/CD-collection/document_root/

i

RewriteBase /home/user/www/nette/examples/CD-collection/document_root/

ale stale to same…

Blizzy
Člen | 149
+
0
-

Pokud to dělá i na localhostu, zkus tohle:

error_reporting(E_ALL);
ini_set('display_errors', 1);
rezorcinol
Člen | 25
+
0
-

Blizzy napsal(a):

Pokud to dělá i na localhostu, zkus tohle:

error_reporting(E_ALL);
ini_set('display_errors', 1);

http://brea.upol.cz/info.php

Radky:

...
display_errors	On	On
...
error_reporting	6143	6143
...

/etc/php5/apache2/php.ini

Radky:

...
error_reporting = E_ALL
...
display_errors = On
...

Myslite, ze to muze mit souvislost s tim, ze nemam nastaveny openbasedir?

_Martin_
Generous Backer | 679
+
0
-

Začal bych krokováním aplikace – buď nějaký debbuger nebo jednoduchým příkazem die('Test'); – nejprve umístit do index.php, zda se vůbec požadavky směrují na něj. Pokud ano, tak na různá místa bootstrapu, atd…

rezorcinol
Člen | 25
+
0
-

_Martin_ napsal(a):

Začal bych krokováním aplikace – buď nějaký debbuger nebo jednoduchým příkazem die('Test'); – nejprve umístit do index.php, zda se vůbec požadavky směrují na něj. Pokud ano, tak na různá místa bootstrapu, atd…

Ok, tak konecne alespon nejaky maly pokrok. Kdyz die(‚Test‘); umisttim kamkoliv do index.php, vzdy se vypise a v bootstrap.php je hranici radek Environment::loadConfig();

<?php


// Step 1: Load Nette Framework
// this allows load Nette Framework classes automatically so that
// you don't have to litter your code with 'require' statements
// require LIBS_DIR . '/Nette/loader.php';
require dirname(__FILE__) . '/../../../Nette/loader.php';



// Step 2: Configure environment
// 2a) enable Nette\Debug for better exception and error visualisation
Debug::enable(Debug::DEVELOPMENT);


// - !!!!!!!!!!!!! TADY SE "TEST" JESTE VYPISE !!!!!!!!!!!!!!!!!!!!!!!!
// 2b) load configuration from config.ini file
Environment::loadConfig();
// - !!!!!!!!!!!!!! TADY UZ NE !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
...
?>
Ondřej Mirtes
Člen | 1536
+
0
-

Nastav nad tím Step 2 toto, jestli se něco vypíše:

Environment::setMode(Environment::DEVELOPMENT);
Environment::getApplication()->catchExceptions = false;
ic
Člen | 430
+
0
-

No já jsem napjatej jak špagát jak tohle dopadne…
každopádně by možná stálo za to vypsat (sem) ten gonfig.ini když tam někde nastane ta chyba

rezorcinol
Člen | 25
+
0
-

LastHunter

Nevypsalo to nic:/

ic

No to mi povidej, ja taky doufam ze se to vyresi. Na tom serveru bych to celkem nutne potreboval rozchodit a takove problemy jsem fakt necekal…

Obsah souboru config.ini a vsech ostatnich jsem vubec nemenil, vse je tak jako kdyz stahnete novou instalaci nette a rozbalite.

Takze obsah config.ini:

[common]
php.date.timezone = "Europe/Prague"
php.iconv.internal_encoding = "%encoding%"

[production < common]
database.driver = sqlite
database.file = "%modelsDir%/demo.db"
database.lazy = TRUE

service.Nette-Security-IAuthenticator = Users

[development < production]
database.profiler = TRUE
vlki
Člen | 218
+
0
-

Vzhledem k tomu, že ve fázi načítání se kromě parsování ini a ukládání do proměnných prostředí zpracovávají i požadavky na změnu php direktiv, tak bych viděl problém v tom.

Zkus vyhodit z configu oba řádky, které začínají tím php*. A volat ty funkce (date_default_timezone_set("Europe/Prague"); a iconv_set_encoding('internal_encoding', "UTF-8");) přímo v bootstrapu s voláním die('Test'); před a za voláním jednotlivých fcí.

rezorcinol
Člen | 25
+
0
-

vlki napsal(a):

Vzhledem k tomu, že ve fázi načítání se kromě parsování ini a ukládání do proměnných prostředí zpracovávají i požadavky na změnu php direktiv, tak bych viděl problém v tom.

Zkus vyhodit z configu oba řádky, které začínají tím php*. A volat ty funkce (date_default_timezone_set("Europe/Prague"); a iconv_set_encoding('internal_encoding', "UTF-8");) přímo v bootstrapu s voláním die('Test'); před a za voláním jednotlivých fcí.

OK, bootstrap.php ted vypada takto:

<?php
// Step 1: Load Nette Framework
// this allows load Nette Framework classes automatically so that
// you don't have to litter your code with 'require' statements
// require LIBS_DIR . '/Nette/loader.php';
require dirname(__FILE__) . '/../../../Nette/loader.php';

//die("pred timezone");
date_default_timezone_set("Europe/Prague");
//die("po timezone");
iconv_set_encoding('internal_encoding', "UTF-8");
//die("po encoding");

Environment::setMode(Environment::DEVELOPMENT);
Environment::getApplication()->catchExceptions = false;

// Step 2: Configure environment
...
?>

Postupne jsem zkousel odkomentovavat die() funkce vsechny se vypsaly.

Editoval rezorcinol (6. 9. 2009 14:12)

rezorcinol
Člen | 25
+
0
-

Tak uz mi dosla trpelivost a kompletne jsem preinstaloval apache, mysql, php i nette a hle… Zazracne to zacalo fungovat. Tak se asi nikdy nedozvime, co za brouka to zpusobilo, ale kazdpopadne dekuji moc vsem, kteri se podileli na reseni tohoto problemu.