今天在执行一个svn update命令时,用exec方法一直没有返回结果,但是直接在Linux中执行命令是可以正常操作的。一顿操作之后,在命令后面加上2>&1。 看到了返回的错误信息,是目录权限问题。这时候又是直接把svn目录直接从root改成了nobody用户和用户组,然后发现还是不行,后来发现nobody用户没有启用,在/etc/passwd目录下启用nobody用户之后,也还是不行。然后开始思考查看下PHP执行的时候到底是用哪个用户去执行的,然后就用echo shell_exec(“id -a”);来查看了一下。然后发现是用Apache用户执行的。最后吧svn目录改成了Apache用户和用户组,最后命令正常执行了。
说明遇到问题不能想当然直接乱改,要思考问题的原因,找到逻辑之后再去改,不然改来改去,最后自己都懵逼了。