kisshere
V2EX  ›  问与答

php 用 exec 调用外部命令时,返回 127 错误码是什么意思?

  •  
  •   kisshere · Jan 27, 2015 · 8441 views
    This topic created in 4297 days ago, the information mentioned may be changed or developed.
    服务器centos,因为需要调用phantomjs,已经安装了phantomjs的二进制文件,并且,在putty上尝试了phantomjs --version能正常输出:1.9.8,然后试了下:
    exec("phantomjs --version", $o, $e);
    echo $e;//返回127
    很纳闷,再试了下:
    exec("ls", $o, $e);
    echo $e;//还是返回127
    谷歌很久,有的人说要采用绝对路径,遂再试了下:
    exec("/usr/bin/ls", $o, $e);
    echo $e;
    我快疯了,还是不行,求大神解答,这个exec函数到底该杂用
    7 replies  •  2017-01-18 23:30:28 +08:00
    msg7086
    msg7086
    Jan 27, 2015 via iPhone
    1
    你的ls存在哪?
    haozhang
    haozhang
    Jan 27, 2015 via iPad
    2
    which ls 或者where is ls,看看ls在哪里。
    kisshere
    kisshere
    OP
    Jan 27, 2015 via Android
    3
    @msg7086
    @haozhang
    谢谢,先不管ls这个命令,我是想调用phantomjs,我找到了phantomjs二进制文件所在的文件夹,在exec函数里加了这个文件的绝对路径,返回码还是127,快绝望了,咋办
    msg7086
    msg7086
    Jan 27, 2015 via iPhone
    4
    @kisshere 安全模式?权限?chrooted?
    kisshere
    kisshere
    OP
    Jan 28, 2015 via Android
    5
    safe_mode=off,权限和chroot什么意思?
    yangg
    yangg
    Jan 28, 2015
    6
    127是文件 找不到,node找不到应该是

    $path = getenv('PATH') ? PATH_SEPARATOR.getenv('PATH') : '';
    putenv("PATH=/usr/local/bin$path");
    jiangle
    jiangle
    Jan 18, 2017
    7
    我想问最后解决了吗?我也遇到 127 这个问题了 @kisshere
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Privacy   ·   Solana   ·   4606 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 33ms · UTC 09:41 · PVG 17:41 · LAX 01:41 · JFK 04:41
    ♥ Do have faith in what you're doing.