Zadejte hledaný výraz...

Spuštění externího programu přes PHP

3CK
verified
rating uzivatele
(2 hodnocení)
17. 8. 2013 12:20:34
Zdravím,
rád bych z PHP skriptu spustil program uložený na disku. Nicméně zatím se mi to nedaří. Nemá někdo zkušenosti s podobnou věcí? (PHP běží na windows)
$cmd = 'c:/program.exe';
//print(shell_exec($cmd));
//print(system($cmd));
print(exec($cmd));
17. 8. 2013 12:20:34
https://webtrh.cz/diskuse/spusteni-externiho-programu-pres-php/#reply934755
Tom
verified
rating uzivatele
(7 hodnocení)
17. 8. 2013 12:39:06
A vypíše to?
Ověř si v php.ini, že exec není v seznamu disable_functions - jinak si zapni výpis chyb a napiš nám chybu
17. 8. 2013 12:39:06
https://webtrh.cz/diskuse/spusteni-externiho-programu-pres-php/#reply934754
3CK
verified
rating uzivatele
(2 hodnocení)
17. 8. 2013 12:56:51
Spouštím s error_reporting(E_ALL | E_STRICT), nevypisuje vůbec nic. Seznam disable_functions je prázdný.
Jenom aby nevznikly nějaké pochybnosti: program.exe skutečně existuje, pro test, zda se spustí, vypadá takto:
17. 8. 2013 12:56:51
https://webtrh.cz/diskuse/spusteni-externiho-programu-pres-php/#reply934753
Jan Stejskal
verified
rating uzivatele
(7 hodnocení)
17. 8. 2013 13:26:23
Zapisovat něco do souboru je kontrola spuštění aplikace?
Vytvořte si php skript, ve kterém zavoláte funkci phpinfo() a zkontrolujte, zda není fce exec zakázaná (na hostinzích obvykle zakázaná je). Vytvořte si htacces soubor a do něj dejte php_flag display_errors on, například wamp, xamp ignorují nastavení error_reporting v php.ini.
17. 8. 2013 13:26:23
https://webtrh.cz/diskuse/spusteni-externiho-programu-pres-php/#reply934752
3CK
verified
rating uzivatele
(2 hodnocení)
17. 8. 2013 13:41:51
Napsal Jan Stejskal;986881
zkontrolujte, zda není fce exec zakázaná (na hostinzích obvykle zakázaná je)
Jak jsem psal výše: Funkce exec zakázána není. Mimo to opravdu nehodlám na cizím hostingu spouštět nějaký program :)
WAMP ani XAMP nepoužívám, mám vlastní instalaci Apache + PHP. .htaccess jsem vytvořil, nicméně výsledek je stále stejný...
Napsal Jan Stejskal;986881
Zapisovat něco do souboru je kontrola spuštění aplikace?
Myslíte, že to nestačí? :-P
17. 8. 2013 13:41:51
https://webtrh.cz/diskuse/spusteni-externiho-programu-pres-php/#reply934751
Tom
verified
rating uzivatele
(7 hodnocení)
17. 8. 2013 13:46:57
Pak mne ještě napadá, že by teoreticky server nemusel mít přístup k programové složce. Vyzkoušej dát soubor do stejné složky a spustit s relativní cestou.
btw. nezdají se mi ty chyby, záměrně vytvořená chyba se vypíše?
17. 8. 2013 13:46:57
https://webtrh.cz/diskuse/spusteni-externiho-programu-pres-php/#reply934750
acidclick
verified
rating uzivatele
17. 8. 2013 13:57:41
neco podobneho jsem taky nedavno resil, bohuzel ne moc uspesne ani pres jednu funkci.
nakonec jsem to vyresil takto:
udelal jsem si .bat, ktery spousti externi program a pak jeste vypise do konzole "Finished". Max problem kdyz se externi program zasekne... ale od toho je max_execution_time direktiva.
jen upresnim, ze to pouzivam pro komunikaci s pohodou -> kdy je potreba vytvorit xml a pak spusti pohodu a POCKAT az vygeneruje odpoved v podobe xml.
17. 8. 2013 13:57:41
https://webtrh.cz/diskuse/spusteni-externiho-programu-pres-php/#reply934749
3CK
verified
rating uzivatele
(2 hodnocení)
17. 8. 2013 14:14:30
Tak už jsem na to došel. Z nějakého důvodu musím mít příkaz ve tvaru start c:/program. Jinak chyba se z nějakého mně neznámého důvodu logovala pouze do apache logu... (chyby při překladu jsou ok).
Děkuji všem za pomoc!
17. 8. 2013 14:14:30
https://webtrh.cz/diskuse/spusteni-externiho-programu-pres-php/#reply934748
ViPErCZ
verified
rating uzivatele
(21 hodnocení)
17. 8. 2013 14:53:52
A je zaplé display_errors=on ?
Napsal 3CK;986899
Tak už jsem na to došel. Z nějakého důvodu musím mít příkaz ve tvaru start c:/program. Jinak chyba se z nějakého mně neznámého důvodu logovala pouze do apache logu... (chyby při překladu jsou ok).
Děkuji všem za pomoc!
17. 8. 2013 14:53:52
https://webtrh.cz/diskuse/spusteni-externiho-programu-pres-php/#reply934747
Pro odpověď se přihlašte.
Přihlásit