shell_exec returns empty string

前端 未结 4 1929
隐瞒了意图╮
隐瞒了意图╮ 2021-01-21 03:06

When I execute my command in PHP with shell_exec it always returns an empty string. I tried shell_exec(\'ls -l\'); and it works. I put the command as

相关标签:
4条回答
  • 2021-01-21 03:36

    I changed the sudoers to ALL ALL = (ALL) :NOPASSWD ALL (very un-secure, but just to find something sure to work),

    then I did a

    sudo -u myusername /path/to/script.sh

    where script.sh has export VAR=value export VAR=value

    for all the environmental variables that are necessary (you can do a printenv from a user who can properly pacmd to see what you need. probably a good HOME and maybe an XAUTHORITY).

    hope that helps

    0 讨论(0)
  • 2021-01-21 03:43

    Maybe this is why that

    Try to use system

    0 讨论(0)
  • 2021-01-21 03:45

    Most of the time php scripts are run by Apache, if thats the case with your script then Apache user may not have enough permissions to run this command. Check that first. If its run as CLI script then check if PHP user can run the script.

    0 讨论(0)
  • 2021-01-21 03:51

    You may want to try " > file.txt 2>&1" at the end of your command. It will redirect the outputs to a separate file.

    $command = "cmd command > outputs.txt 2>&1";
    shell_execute($command);
    

    You'll end up with a file that looks something like this:

    b'cmd command output contents\r\n'
    
    0 讨论(0)
提交回复
热议问题