exec("/usr/bin/mysqldump -h'210.14.65.107' -uroot -ppsswd AM | gzip > /var/www/html/s/dase.sql.gz");这段代码在linux服务器上,我直接连服务器用php /var/www/html/s/2.php执行 这个php    成功。但在windows下我用 url请求的方式执行这个php脚本 没有任何结果 不知道是怎么回事类?

解决方案 »

  1.   

    windows 下你确认有 /usr/bin/mysqldump ? 以及能支持gzip的压缩?
      

  2.   

    脚本是在 Linux上的 用url访问执行脚本
      

  3.   


    那你就打开php的错误提示 你就能看到有什么原因了.
    一般都是权限问题你上面有个帖子说是root 但是你要分清楚 apache 运行的帐号并非root.
    所以有权限问题
      

  4.   

    确保你的apache用户具有对/usr/bin/mysqldump的执行权限。
      

  5.   

    那怎么看apache的运行运行帐号的权限呢?
      

  6.   

    打开httpd.conf,找到User、Group
    下面是我的
    User httpd
    Group httpd
      

  7.   


    先看apache的http.conf,看看它是用什么用户运行的(apache启动肯定是root,因为要绑80端,然后根据配置文件setuid,setgid就把用户换掉继续运行了),或者ps aux | grep http 也能看到其有效用户ID对应的用户名,第一列应该就是,用户组不会看,你自己man ps研究研究。然后,看看/user/bin/mysqldump的用户主和用户组是什么,看看apache的用户是不是主人或者同组的,看看主和组的权限,否则看看其他用户权限。目标就是保证apache用户有执行mysqldump的执行权限。