bl乄ue光耀 发布于 2017-05-15 15:12

服务器centos,因为需要调用phantomjs,已经安装了phantomjs的二进制文件,并且,在putty上尝试了phantomjs --version能正常输出:1.9.8.
然后试了下:

exec("phantomjs --version", $o, $e);
echo $e;//返回127

很纳闷,再试了下:

exec("ls", $o, $e);
echo $e;//还是返回127

谷歌很久,有的人说要采用绝对路径,遂再试了下:

#which ls
/bin/ls

于是再在php中输入:

exec("/bin/ls", $o, $e);
echo $e;//还是返回127

查看php.ini,safe_mode=Off,disble_functions里也没有禁用exec()和system()等函数,按理说php应该有执行exec的权限啊,换成system(),shell_exec均是返回127,我快疯了,求大神解答,这个exec函数到底该杂用

2 个回答
  • 检查下你当前运行PHP脚本的用户
    我用root用户测试了下,不会有什么错
    exec 或者system 运行的命令,首先应该是当前运行脚本用户有执行此程序的权限

    2017-05-15 23:11 回答
  • 因为你的路径没有写绝对路径,肯定是这样的。
    要这样写:
    /xxx/xx/phantomjs --version

    2017-05-16 13:56 回答
撰写答案
今天,你开发时遇到什么问题呢?
立即提问
活跃用户
  • 1
    问道摩托
  • 2
    袁广龙976丶
  • 3
    逍遥子
  • 4
    亮仔
  • 5
    芙蓉花
  • 6
    作小die_syj
  • 7
    王丽珠景平怡伦_621
  • 8
    CH_Double_C
  • 9
    adfa3sd5f6a
  • 10
    欣欣大妮
PHP1.CN | 中国最专业的PHP中文社区 | PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | PHP问答
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved PHP1.CN 第一PHP社区 版权所有