> 백엔드 개발 > PHP 튜토리얼 > php利用exec执行shell脚本有关问题

php利用exec执行shell脚本有关问题

WBOY
풀어 주다: 2016-06-13 12:58:47
원래의
1133명이 탐색했습니다.

php利用exec执行shell脚本问题
先说下我想做的事情:
     将Linux下的操作,web化,使用户可以通过web端进行基本的操作,但是现在在写创建目录的代码:
      $mkdir_command = "/home/myname/myshell/mkdir.sh /$directory/ $name";
      exec($mkdir_command,$output,$return);
       .....
     我也知道在web端执行shell脚本,其实在Linux下是以Apache的权限来运行的,
      但是在Linux下我将mkdir.sh在运行时的权限修改为root的了,也就是说任何调用该文件的用户在执行的时候都是以root的权限来执行的:chmod 777 mkdir.sh ;  chmod u+s mkdir.sh   
但是在网页端还是执行不成功。
单独在Linux下是可以执行成功的,
希望大家发表一下意见或者看法,谢谢!!
------解决方案--------------------
Apache对该目录要有写的权限
------解决方案--------------------
1.web将结果写到 一个文件里 例如需要创建什么 到哪创建

2.linux root 定时 调用 shell 查看文件是否存在需要更动的内容 
如果是 这个时候就是用root 来操作了


建一个定时器就是了.
------解决方案--------------------
你得查看你有没有执行权限
system/exec先执行一条其他简单的命令比如:ls 、ifconfig看看能否执行成功
再去检查.sh文件的权限问题
------解决方案--------------------
linux下输入visudo
然后我们在最后追加
apache ALL=NOPASSWD:/bin/sh
然后
php执行exec("/usr/bin/sudo /bin/sh /xxx/xxx.sh")
/xxx/xxx.sh 是你要执行的脚本

看看这篇文章吧,可以解决你的问题
http://blog.csdn.net/vindo/article/details/3610587
------解决方案--------------------
加 sudo

관련 라벨:
원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿