Nefunkční aplikace na webhostingu
- Mirek
- Člen | 86
Dobrý den,
zkusil jsem si svojí aplikaci přenést na webhosting a tam mi nefunguje.
Prohlížeč mi hlásí error 500 a když se podívám do error logu serveru,
tak tam vidím „GET /tzn/index.php HTTP/1.1“ 404 – „-“ přitom do
prohlížeče jsem zadával úplnou cestu k tomu souboru index.php
Jedná se o webhosting pipni.cz, kde ve FAQ popisují chyby 500 jako problém
s .htaccess, takže jsem zkusil .htaccess smazat a stále mi to hlásí stejnou
chybu. Temp adresář jsem vždy před dalším pokusem vymazal a v něm se
objevují jen dva soubory (a vytvoří se jen když mám smazaný
.htaccess) – temp/cache/_Nette.RobotLoader/_bddc88a1e51e15d760f427c3fcac34ba
o velikosti 2024 bajtů a
temp/cache/Nette.Configurator/Container_4e12ad4b67.php.lock s nulovou
velikostí.
Poradí mi někdo, kde hledat chybu?
- Mirek
- Člen | 86
No já s tím na tom webhostingu moc neudělám, nicméně podle phpinfo je
display_errors=On pomocí
ini_set(‚error_reporting‘, ‚32767‘) si můžu nastavit
error_reporting na E_ALL, ale stále mi to hlásí ten error 500 a nevypisuje
to žádnou chybu.
Vkládáním exit jsem zjistil, že chybu vyvolává
<?php
$container = $configurator->createContainer();
?>
v bootstrap.php (když je exit před tím, tak se mi vrátí prázdná stránka, když je exit za tím, tak už mi to vrací ten error 500), ale stále nevím co s tím.
Jen pro pořádek, php je verze 5.6.10
Editoval Mirek (5. 12. 2016 11:29)
- Mirek
- Člen | 86
Tak jsem proniknul zase o kousek dál a jsem v Compiler.php v metodě generateCode(), která má vracet $classes, ale když dám exit těsně před ten return, tak se mi v pořádku zobrazí prázdná stránka, ale jakmile ten exit zruším, tak se mi objeví ten error 500 a stejně tak se mi objeví ten error, pokud před tím returnem se pokusím zobrazit obsah té proměnné $classes pomocí print_r().
- Mirek
- Člen | 86
Tak jsem se dostal k jádru problému – chybu dělá implode(„\n\n\n“, $classes) v Compiler.php na řádku 161 kde je to návratová hodnota z public function compile a nějak nevím co s tím – zkusil jsem si u sebe nainstalovat PHP 5.6.10, které mám na webhostingu, a u mě na localhostu to funguje i s touto verzí PHP. Tak netuším, co zde může být za problém, že funkce implode na poli objektů v $classes zhavaruje. Pole $classes sem si před tím implode vypsal pomocí print_r a zdá se, že obsahuje vše co má – vypadá podobně jako na localhostu.
Editoval Mirek (14. 12. 2016 13:09)
- Mirek
- Člen | 86
Requirements checker jsem musel upravit, neboť psal, že se dá spustit jen na localhostu a výsledek je uspokojivý – viz http://nette.svrcek.cz/nette.gif
- Gappa
- Nette Blogger | 209
Mirek napsal(a):
Nevím co je DIC – když jsem se tu snažil hledat, tak jsem vysvětlení téhle zkratky nikde nenašel.
A nefunguje ani sandbox, tak jak je v distribučním balíku s tou výchozí aplikací.
To by měl být Dependency Injection Container, potomek Nette\DI\Container.
- Mirek
- Člen | 86
A na localhostu mi to běží s memory limitem 256MB a tohle hlásí tracy http://nette.svrcek.cz/info.gif
- chemix
- Nette Core | 1310
@Mirek tak pokud nebezi ani cisty sandbox, tak to je opravdu na kouknuti se po hostingu ktery je funkcni. Pokud to mas na hrani, tak doporucuju zkusit se kouknout treba na online ide c9 http://blog.honzacerny.com/…-cloud-9-ide. Pokud to mas na praci = dostavas za to $ a lidi plati za provoz, tak mrkni po hostingu co ti jde na ruku. U Blueboard.cz dostanes jako bonus deploy pomoci GIT a zbohem oldskůl FTP ;-) Nehazej si klacky pod nohy.