Portál AbcLinuxu, 10. května 2025 01:19

Dotaz: PHP - příkaz system() nic neudělá

22.5.2011 02:13 jbb
PHP - příkaz system() nic neudělá
Přečteno: 205×
Odpovědět | Admin
Zdravím,
potřebuji na svém apache serveru zobrazit .jpg obrázek z webové kamery - typicky tedy poslední z x obrázků z různých souborů.
Na zjištění posledního obrázku na disku jsem si napsal shellový script, jehož výstupem je jméno toho obrázku. Představoval jsem si tedy, že když ten script vyvolám pomocí system(/jméno scriptu/), tak že mi na webu vyhodí to jméno obrázku. Ale nevyhodí to nic. Stejně tak jsem zkoušel exec() i shell_exec() a taky to nic nevydá. Zkusil jsem dát do toho system i nějaký systémový příkaz (např. ls -l /adresar) a zase nic.
Takže kde dělám chybu? Díky za odpovědi
Nástroje: Začni sledovat (0) ?Zašle upozornění na váš email při vložení nového komentáře.

Odpovědi

mess avatar 22.5.2011 09:02 mess | skóre: 43 | blog: bordel | Háj ve Slezsku - Smolkov
Rozbalit Rozbalit vše Re: PHP - příkaz system() nic neudělá
Odpovědět | | Sbalit | Link | Blokovat | Admin
Nemáš na tom serveru zapnutý safe mode? Respektive nemáš tyto "spouštěcí" funkce zakázané?
Cez párne mesiace zošíváš vaginy, cez neparne montuješ hajzle.
22.5.2011 10:01 jbb
Rozbalit Rozbalit vše Re: PHP - příkaz system() nic neudělá
Může být, server je v tomhle případě v defaultním nastavení... Kde tenhle údaj najdu a změním?
S tím souvisí možná i to, že když se natvrdo odkazuju na nějaký ten obrázek na disku, tak mi funguje relativní cesta(adresar/obrazek), ale když zkusím absolutní od kořene (/var/www/adresar/obrazek), tak se to tvari, ze tam neni...
mess avatar 22.5.2011 10:40 mess | skóre: 43 | blog: bordel | Háj ve Slezsku - Smolkov
Rozbalit Rozbalit vše Re: PHP - příkaz system() nic neudělá
Konfigurace PHP je v /etc/php.ini nebo /etc/php/php.ini, případně ještě jinde, záleží na distribuci. Po změně nastavení je třeba udělat restart Apache. V konfiguráku hledej "safe_mode" a "disable_functions".
Cez párne mesiace zošíváš vaginy, cez neparne montuješ hajzle.
22.5.2011 10:46 jbb
Rozbalit Rozbalit vše Re: PHP - příkaz system() nic neudělá
Děkuju,
tak kupodivu v php.ini je safe_mode=Off, disable_functions je zakomentované...
Takže tím to není... Co bych měl zkusit dál?
mess avatar 22.5.2011 11:11 mess | skóre: 43 | blog: bordel | Háj ve Slezsku - Smolkov
Rozbalit Rozbalit vše Re: PHP - příkaz system() nic neudělá
Ještě budeš muset specifikovat X display (proměnná prostředí DISPLAY), jinak se ti ta GUI aplikace na obrázky nespustí. Taky můžeš čekat problémy s autorizací X. Use the force, Luke.
Cez párne mesiace zošíváš vaginy, cez neparne montuješ hajzle.
22.5.2011 11:16 jbb
Rozbalit Rozbalit vše Re: PHP - příkaz system() nic neudělá
Ne ne, nepotřebuju žádnou Gui aplikaci.
Mám to řešené tak, že příslušný videoserver uploaduje při detekci pohybu obrázky na server (na FTP). A já prostě potřebuju, aby mi php vyhledalo obrázek (cesta je něco jako /home/MNT/XCAMM/vs/192.168.1.71/[datum]/002/[posledni hodina]/[cislo obrazku].jpg).
Aktuálně jsem to zkusil tak, že php zavolá přes system() skript, který nakopíruje ten vyhledaný obrázek do /var/www adresáře. Ale zdá se, že ani teď ten skript neproběhne...
mess avatar 22.5.2011 11:20 mess | skóre: 43 | blog: bordel | Háj ve Slezsku - Smolkov
Rozbalit Rozbalit vše Re: PHP - příkaz system() nic neudělá
Má uživatel, pod kterým běží Apache práva na spuštění toho skriptu? Má práva na čtení ze zdrojového adresáře / zápis do cílového adresáře?
Cez párne mesiace zošíváš vaginy, cez neparne montuješ hajzle.
22.5.2011 11:37 jbb
Rozbalit Rozbalit vše Re: PHP - příkaz system() nic neudělá
Díky moc,
jak se říká, "that did the trick". Skutečně byl v tuhle chvíli problém v tom, že skript vyvolaný přes system() nemohl psát do příslušného adresáře.
Teď bych ještě ocenil, pokud bych dokázal donutit číst apache obrázky z jiného adresáře než /var/www, ale bez toho samozřejmě taky přežiju...
mess avatar 22.5.2011 11:40 mess | skóre: 43 | blog: bordel | Háj ve Slezsku - Smolkov
Rozbalit Rozbalit vše Re: PHP - příkaz system() nic neudělá
Apache může číst z libovolného adresáře, jen musí mít ten uživatel, pod kterým běží Apache, práva pro čtení z toho adresáře (a AFAIK musí mít práva pro výpis obsahu všech rodičovských adresářů toho adresáře).
Cez párne mesiace zošíváš vaginy, cez neparne montuješ hajzle.
Josef Kufner avatar 23.5.2011 22:59 Josef Kufner | skóre: 70
Rozbalit Rozbalit vše Re: PHP - příkaz system() nic neudělá
Odpovědět | | Sbalit | Link | Blokovat | Admin
Základem úspěchu, je najít log a v aplikaci povolit logování úplně všeho (a přesměrovat to do logu).
Hello world ! Segmentation fault (core dumped)

Založit nové vláknoNahoru

Tiskni Sdílej: Linkuj Jaggni to Vybrali.sme.sk Google Del.icio.us Facebook

ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.