Bekijk Volledige Versie : [Plesk][PHP] shell_exec
Probleem omschrijving:
Ik probeer een .sh bestand te openen, maar hij geeft niets weer. Als ik de test.sh open via putty dan werkt hij wel gewoon, maar zodra ik hem wil openen via de php script met shell_exec doet hij het niet. safe mode staat niet aan dus daar kan het niet aan liggen.
Script:
PHP:
<?php $output = shell_exec('./test.sh http://download.eset.com/eval/win/eav/eav_nt32_enu.msi); echo "<pre>$out</pre>"; ?>
test.sh
wget $1
Mijn toegankelijkheid:
Root access, ook heeft mijn hosting toegang op de shell.
Ramon Fincken
02/02/09, 01:27
ik zie een $ouput en een $out, heeft t daar niet mee te maken?
Tim.Bracquez
02/02/09, 01:36
probeer eens <? echo shell_exec("whoami"); ?> als dit een output geeft gaat shell_exec, dit kan wel eens uitgeschakeld staan(via <? phpinfo(); ?> kan je de disabled functions bekijken of in de php.ini).
Probeer eventueel het full path naar test.sh op te geven, heeft dit bestand wel execute rechten? (vermoedelijk wel als dit via command line wel gaat)
EDIT: dit staat er "shell_exec('./test.sh http_link_je_hier)"
moet daar niet nog een quote bij? dus shell_exec('./test.sh http_link_je_hier')
eveneens ook $output en $out... zoals Ramon je al aangaf
Ramon Fincken
02/02/09, 01:44
of je path natuurlijk :)
teruste!
probeer eens <? echo shell_exec("whoami"); ?> als dit een output geeft gaat shell_exec, dit kan wel eens uitgeschakeld staan(via <? phpinfo(); ?> kan je de disabled functions bekijken of in de php.ini).
Probeer eventueel het full path naar test.sh op te geven, heeft dit bestand wel execute rechten? (vermoedelijk wel als dit via command line wel gaat)
EDIT: dit staat er "shell_exec('./test.sh http_link_je_hier)"
moet daar niet nog een quote bij? dus shell_exec('./test.sh http_link_je_hier')
eveneens ook $output en $out... zoals Ramon je al aangaf
Beste,
Ja whoami, ls -a en dergelijke commando's werken wel gewoon, maar als het op een .sh bestand uitkomt lijkt het wel of ik geen rechten heb. WGET werkt ook gewoon niet. Erg appart dus!
In de php.ini kan ik niet iets vinden dat het uitgeschakeld staat o.id.
Tim.Bracquez
02/02/09, 09:14
doe eens /bin/bash /home/user/.../test.sh,
probeer eens het script eerst uit te voeren zonder de extra url om te kijken of die wel sh scripts draait...
doe eens /bin/bash /home/user/.../test.sh,
probeer eens het script eerst uit te voeren zonder de extra url om te kijken of die wel sh scripts draait...
Gebeurt precies het zelfde - white screen :(
en als je nou direct eens wget aanroept? wat krijg je dan? want wget moet het in princiepe gewoon doen :)
Heb je wel de juiste permissies in de directory waar je dat bestand wilt schrijven ?
Gebruik eens het volledige path voor wget in je test.sh en knal een shebang bovenin de .sh.
echo "PATH=/sbin:/bin:/usr/sbin:/usr/bin:/usr/games:/usr/local/sbin:/usr/local/bin:/usr/X11R6/bin:$HOME/bin; export PATH" > ~/.profile
(/usr/X11R6/bin is optioneel)
Het werkt nu, was een permissie fout. Hartelijk dank voor de reacties, cleared up my mind ! :)
Ramon Fincken
02/02/09, 22:21
kijk es aan, thanks voor de update !!