欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  后端开发

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

程序员文章站 2022-04-04 18:29:19
...
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利用exec执行shell脚本有关问题

声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn核实处理。

相关文章

相关视频