最近使用到了nodejs里面的cordova build命令,首先exec我们要了解,exec的执行用户是apache,权限很小,我们需要打开vim /etc/sudoers文件把用户加入sudo,添加如下代码
apache ALL=(ALL) NOPASSWD: ALL
然后我们继续执行,发现还是command not found,这是个很坑的问题,不知道为何没有把公用环境变量继承下来,我的解决办法是,写一个shell脚本,里面引入需要的环境变量即可,这里需要注意的是每执行一次exec都是全新的,也就是说你假如第一个exec是切换目录到root,第二次执行的话当前目录不会再是root了。