I'm developing a server application and I recently encountered this wierd error on a testing server (Debian Squeeze).
Every executable I pass to popen fails with a msg:
sh: sort: not found // happens to any command
This happens regardless whether I point to the full path returned by "type" or keep it short . As mentioned earlier, this happens at only one testing environment, to add confusion, am running the same OS and had no problem whatsoever.
Popen is apparently using sh to execute commands, but if I run the same command thru the command-line (bash or sh), everything's fine
Thanks in advance
(PS: even tried Python os.popen just to nail this head scratcher, and it works!)
Edit this is a simple call that fails:
$command="tail -10 myfile";
$handle = popen($command.' 2>&1','r');
if($handle){
while (!feof($handle)){
....//process buffer
}
}
returns:
sh: tail: not found
Probably your PATH is NOT configured properly, when calling popen. I guess this is a PHP configuration problem, but you can bypass it by:
which tail
to determine the full path to the tail program.popen
with the path found in 1.If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With