Maison > développement back-end > tutoriel php > php利用exec执行shell脚本有关问题

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

WBOY
Libérer: 2016-06-13 12:58:47
original
1137 Les gens l'ont consulté

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

Étiquettes associées:
source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal