Server Error 500 – Endora.cz

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

Zdravím, mám asi známý problém.
Na localhostu jsem si vše naprogramoval, funguje to krásně.
Připravím aplikaci na server Endory a ejhle, najednou mi tam vyskočí Server Error 500.

V bootstrap.php jsem si nastavil laděnku do vývojového režimu, takže by se měla chovat jako na localhostu, ale nic se neděje.

Editoval Grelek (21. 6. 2012 13:31)

mav
Člen | 12
+
0
-

Problém bude možná vážnější. Podívej se na http://podpora.endora.cz/viewtopic.php?…. Instalovali php 5.3.13 a vypadá to, že ne úplně úspěšně. Přestaly fungovat anonymní funkce. Včera mi přestaly fungovat oba weby, co u nich mám. Mám v error.log: „call_user_func() expects parameter 1 to be a valid callback“. Na lokále vše funguje.

Editoval mav (23. 5. 2012 22:22)

mav
Člen | 12
+
0
-

Probírám svoje zdrojáky, ale nic takového tam nemám. Používá anonymní funkce přímo Nette? Uvítám, když se ozve někdo, komu momentálně chodí na Endoře Nette verze 2.

h4kuna
Backer | 740
+
0
-

Často taky narážím na nedostatek paměti 8M které jsou v základu je málo. Tak si to zkontroluj.

Majkl578
Moderator | 1364
+
0
-

Začal bych zapnutím debug módu. 500 tu nikomu nic neřekne.

Aurielle
Člen | 1281
+
0
-

Už jsem narazil na hosting, kde nefungovaly closury – skript prostě spadl bez jediné chyby a já mohl hledat proč…

mav
Člen | 12
+
0
-

Do včerejška mi oba dva weby na Endoře fungovaly. Bez jakékoliv změny programu nebo nastavení prostě přestaly fungovat. Zřejmě to bude opravdu tou instalací nové verze php.

Kromě té chyby 500, co má Grelek, mám zprávu v error.log uvedenou výše. Soubor exception-x-y-z.html, kam se mi zapisuje laděnka, je prázdný.

Editoval mav (23. 5. 2012 23:59)

Ascaria
Člen | 187
+
0
-

Doporučuju jako první zkontrolovat práva zápisu do složek temp a log.

Pak se můžem podívat na nějaké z těchto možností, mixnout je, nebo je použít všechny:

.htaccess

# po tomto se zacala trvale zobrazovat Laděnka, tj. bez Error 324
php_flag allow_call_time_pass_reference ON

# eaccelerator zpusobuje na nekterych hostinzich problemy
php_flag eaccelerator.enable 0
php_flag eaccelerator.optimizer 0

a taky zapnout debug mod, aby to nepsalo error 500:

bootstrap.php (pokud máš nejnovější nette, tak je to nějak takle)

$configurator->setDebugMode(true);
$configurator->enableDebugger(__DIR__.'/../log', 'e@mail.cz');

Pak mrknem co ti to bude psát až vyskočí laděnka.

Editoval Ascaria (24. 5. 2012 8:31)

Grelek
Člen | 233
+
0
-

a taky zapnout debug mod, aby to nepsalo error 500:

bootstrap.php (pokud máš nejnovější nette, tak je to nějak takle)

$configurator->setDebugMode(true);
$configurator->enableDebugger(__DIR__.'/../log', 'e@mail.cz');

Můj bootstrap.php vypadá takhle:

$configurator->setProductionMode($configurator::DEVELOPMENT);
$configurator->enableDebugger(__DIR__ . '/../log');
Majkl578
Moderator | 1364
+
0
-

Grelek napsal(a):

a taky zapnout debug mod, aby to nepsalo error 500:

Můj bootstrap.php vypadá takhle:

$configurator->setProductionMode($configurator::DEVELOPMENT);
$configurator->enableDebugger(__DIR__ . '/../log');

Tak to ho máš špatně. Metoda setProductionMode očekává boolean / řetězec/pole IP adres, $configurator::DEVELOPMENT je string ‚development‘.

Ascaria napsal(a):

.htaccess

# po tomto se zacala trvale zobrazovat Laděnka, tj. bez Error 324
php_flag allow_call_time_pass_reference ON

Zcela jistě Nette tuto vlastnost nevyžaduje. V PHP 5.4 je mimochodem z PHP úplně odstraněna.

mav
Člen | 12
+
0
-

U mne byl debug mod zapnutý, laděnka se do logu zapisovala až do 21.5.2012. Weby mi fungovaly. Až po té nové instalaci php na Endoře mi weby nefungují, laděnka se do logu nezapisuje, jen v error logu je „call_user_func() expects parameter 1 to be a valid callback“ a ve fóru na Endoře se někdo ozval, že má problémy, které předtím neměl: přestaly fungovat anonymní funkce. Já je nemám použity, tak proto ten můj dotaz, jestli je používá přímo Nette.

Přesto zkouším i doporučení na doplnění .htaccess. Nepomohlo, přesto děkuji.

Ascaria
Člen | 187
+
0
-

Grelek napsal(a):

Můj bootstrap.php vypadá takhle:

$configurator->setProductionMode($configurator::DEVELOPMENT);
$configurator->enableDebugger(__DIR__ . '/../log');

Asi ti nepomůžu moc, ale string ‚development‘ který se skrývá pod $configurator::DEVELOPMENT se při přetypování na boolean změní na true, takže web neběží v development mode ale na ostro, proto máš error 500 a ne výpis laděnky.

K Endoře snad jen to, že pokud to tam neopravěj a sami sebe přesvědčej, že je to bezpečnostní fíčura, tak změnit hosting :(

Editoval Ascaria (24. 5. 2012 15:07)

Grelek
Člen | 233
+
0
-

Majkl578 napsal(a):

Grelek napsal(a):

a taky zapnout debug mod, aby to nepsalo error 500:

Můj bootstrap.php vypadá takhle:

$configurator->setProductionMode($configurator::DEVELOPMENT);
$configurator->enableDebugger(__DIR__ . '/../log');

Tak to ho máš špatně. Metoda setProductionMode očekává boolean / řetězec/pole IP adres, $configurator::DEVELOPMENT je string ‚development‘.

Ascaria napsal(a):

.htaccess

# po tomto se zacala trvale zobrazovat Laděnka, tj. bez Error 324
php_flag allow_call_time_pass_reference ON

Zcela jistě Nette tuto vlastnost nevyžaduje. V PHP 5.4 je mimochodem z PHP úplně odstraněna.

A jak mám tedy bootstrap.php nastavit?

Ascaria
Člen | 187
+
0
-
$configurator->setProductionMode(false);

takle zapneš development mode a zjistíš co tam máš blbě, protože místo suchýho erroru 500 ti vyskočí laděnka s popisem chyby.

mav
Člen | 12
+
0
-

Tak už mi to zase chodí. Bylo to nakonec přece jenom v tom eacceleratoru. Děkuji moc.