Fórum Root.cz
Hlavní témata => Vývoj => Téma založeno: Hanka Skoumalová 30. 06. 2010, 12:25:53
-
Píšu v PHP rozhraní pro jednu aplikaci. Webový formulář ji má nakrmit daty a pak zobrazit výsledek. Tu aplikaci spouštím pomocí system($command) nebo shell_exec($command). Ta aplikace je trochu pomalejší, takže zpracování i dosti jednoduchých dat jí trvá pár vteřin. Když pouštím to PHP z příkazové řádky, dostanu výsledek, ale na webu ne. Není v PHP nějaký timeout, který způsobí, že se nepočká na provedení příkazu? Nebo jak to zařídit, abych se svého výstupu dočkala?
-
Nemas skor nahodou pre "apache" verziu interpreta zakazane volat tieto funkcie? Skus zavolat nieco rychel co len vypise jeden riadok.
-
Jinak v php samozrejme timeout je.
V php.ini je to nastaveni:
max_execution_timeout = 30s (by default ;o)
Ale kolega predemnou mel pravdu - nejdriv zkusit, jestli se vubec vykona jakykoli shell_exec. Az pak resit timeouty.
-
To jsem zapomněla napsat - samozřejmě jsem si zkusila něco jednoduchého. A hlavně, pokud by nefungovaly funkce jako system, exec atd, tak by nefungovaly ani z řádky. Nebo ano?
Mezitím jsem přišla na to, v čem je asi závada. Ten můj program je script, který volá spoustu dalších programů a nemám tam celé cesty. Když pouštím PHP z řádky, tak to nevadí, protože mám nastavenou PATH, ale apache o ní zřejmě neví. Jdu opravovat svůj script.
-
a to ti ten PHP skript nehlasi zadny chyby? kdyby se to tykalo timeoutu, tak zarve fatal error, Maximum execution time of x seconds exceeded.
-
Jak jsem psala výše, bylo to tím, že script při spuštění na webu nenašel některé programy a nevypsal tudíž nic na výstup. Při spouštění v terminálu se tahle chyba neprojevila, ale už jsem to opravila a funguje to.
-
hmm za odmenu si teda muzes dat whiskas