Vidim jen prazdnou stranku misto webaplikace
- rezorcinol
- Člen | 25
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:
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
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
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?
- Ondřej Mirtes
- Člen | 1536
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)
- rezorcinol
- Člen | 25
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>
- rezorcinol
- Člen | 25
nAS napsal(a):
Zkoušel jsi odkomentovat to RewriteBase / ?
Odkomentovano… Stale to same:/
- rezorcinol
- Člen | 25
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…
- rezorcinol
- Člen | 25
Blizzy napsal(a):
Pokud to dělá i na localhostu, zkus tohle:
error_reporting(E_ALL); ini_set('display_errors', 1);
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?
- rezorcinol
- Člen | 25
_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
Nastav nad tím Step 2 toto, jestli se něco vypíše:
Environment::setMode(Environment::DEVELOPMENT);
Environment::getApplication()->catchExceptions = false;
- rezorcinol
- Člen | 25
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
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
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");
aiconv_set_encoding('internal_encoding', "UTF-8");
) přímo v bootstrapu s volánímdie('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
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.