LiteSpeed Support Forums

LiteSpeed Support Forums (http://www.litespeedtech.com/support/forum/index.php)
-   General (http://www.litespeedtech.com/support/forum/forumdisplay.php?f=25)
-   -   php and exec (http://www.litespeedtech.com/support/forum/showthread.php?t=6289)

mrxUx 10-01-2012 11:41 AM

php and exec
 
a quick question, maybe already answered but I couldn't find anything yet, so please excuse me :)

I'm using cPanel + LiteSpeed, and for example, I have the following code on a php script:

PHP Code:

<?php
echo ":: ".`which convert`;
?>

Which should come up with the full path of convert (part of imagemagick), however is returning empty, now if I do the same from the user's shell by executing the php: "sudo -u user php -f file.php" y do get the right path.

Another funny thing is, if instead I use `which --help` it works in both and actually "convert" does work without problems, so I'm kinda confused here :)

mistwang 10-01-2012 11:51 AM

You can set "PATH=...." in lsphp5 "Environment" configuration.

mrxUx 10-01-2012 03:13 PM

Quote:

Originally Posted by mistwang (Post 35259)
You can set "PATH=...." in lsphp5 "Environment" configuration.

Not sure if the issue is there, let me go deeper and show you with a small php script I did to print stuff over LiteSpeed:

PHP Code:

<?php

// no big deal, it will just execute things and print them nice
out("echo \$PATH");
out("ls /usr/bin/which");
out("ls /usr/bin/convert");    
out("/usr/bin/which --version");
out("/usr/bin/convert --version");
out("/usr/bin/which convert");

function 
out($cmd) {
  
$out trim(`$cmd`);
  echo 
":: [$cmd]\n\t$out\n\n";
}
?>

This was the result:

Code:

:: [echo $PATH]
        /usr/local/bin:/bin:/usr/bin

:: [ls /usr/bin/which]
        /usr/bin/which

:: [ls /usr/bin/convert]
        /usr/bin/convert

:: [/usr/bin/which --version]
        GNU which v2.19, Copyright (C) 1999 - 2008 Carlo Wood.
GNU which comes with ABSOLUTELY NO WARRANTY;
This program is free software; your freedom to use, change
and distribute this program is protected by the GPL.

:: [/usr/bin/convert --version]
        Version: ImageMagick 6.7.1-7 2012-09-15 Q16 http://www.imagemagick.org
Copyright: Copyright (C) 1999-2011 ImageMagick Studio LLC
Features: OpenMP

:: [/usr/bin/which convert]
(***EMPTY***)

I hope this helps, as some Gallery scripts try to "autodetect" some binaries but the problem here is that "which" is not giving the right path.

NiteWave 10-02-2012 11:23 PM

my local test not empty, show " /usr/bin/convert" correctly:
Quote:

:: [echo $PATH]
/usr/kerberos/sbin:/usr/kerberos/bin:/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/root/bin

:: [ls /usr/bin/which]
/usr/bin/which

:: [ls /usr/bin/convert]
/usr/bin/convert

:: [/usr/bin/which --version]
GNU which v2.16, Copyright (C) 1999 - 2003 Carlo Wood.
GNU which comes with ABSOLUTELY NO WARRANTY;
This program is free software; your freedom to use, change
and distribute this program is protected by the GPL.

:: [/usr/bin/convert --version]
Version: ImageMagick 6.2.8 02/22/12 Q16 file:/usr/share/ImageMagick-6.2.8/doc/index.html
Copyright: Copyright (C) 1999-2006 ImageMagick Studio LLC

:: [/usr/bin/which convert]
/usr/bin/convert

mrxUx 10-03-2012 09:16 AM

Quote:

Originally Posted by NiteWave (Post 35290)
my local test not empty, show " /usr/bin/convert" correctly:

I guess you're testing it as root, how about using a non privileged user?

Thanks for the updates guys :)

NiteWave 10-03-2012 08:54 PM

tested with root, also tested with nobody

access it through browser, it runs under lsphp5 user -- nobody.

you can add
out("id");
to confirm it.

mrxUx 10-04-2012 10:47 AM

I'm running out of ideas, not sure what it could be but the funny thing is that this issue happens on all the servers we have.

Why it can execute "which" and only be able to get the help? :(

webizen 10-04-2012 12:08 PM

are you able to reproduce the issue in Apache?

mrxUx 10-05-2012 11:21 AM

@webizen, yes Sir, this is the output:

Quote:

:: [echo $PATH]
/bin:/usr/bin

:: [ls /usr/bin/which]
/usr/bin/which

:: [ls /usr/bin/convert]
/usr/bin/convert

:: [/usr/bin/which --version]
GNU which v2.19, Copyright (C) 1999 - 2008 Carlo Wood.
GNU which comes with ABSOLUTELY NO WARRANTY;
This program is free software; your freedom to use, change
and distribute this program is protected by the GPL.

:: [/usr/bin/convert --version]
Version: ImageMagick 6.7.1-7 2012-09-15 Q16 http://www.imagemagick.org
Copyright: Copyright (C) 1999-2011 ImageMagick Studio LLC
Features: OpenMP

:: [/usr/bin/which --tty-only convert]
/usr/bin/convert

NiteWave 10-06-2012 01:32 AM

not sure why yet, but following tests may inspire others:
PHP Code:

<?php
echo "<pre>";
out("echo \$PATH");
out("echo $PATH");
out("PATH=/usr/local/bin:/bin:/usr/bin /usr/bin/which ls");
out("/usr/bin/which ls");
out("id");
out("alias");
out("env");
echo 
"</pre>";

function 
out($cmd) {
  
$out = `$cmd`;
  echo 
":: [$cmd]\n\t$out\n";
}
?>

the output(in browser):
Quote:

:: [echo $PATH]
/usr/local/bin:/bin:/usr/bin

:: [echo ]


:: [PATH=/usr/local/bin:/bin:/usr/bin /usr/bin/which ls]
/bin/ls

:: [/usr/bin/which ls]

:: [id]
uid=555(shooting) gid=555(shooting) groups=555(shooting)

:: [alias]

:: [env]
PHPRC=/home/shooting/
PWD=/home/shooting/public_html/Darladog
SHLVL=1
_=/bin/env


All times are GMT -7. The time now is 03:32 PM.