PHP执行外部命令 - 如何在用户名和密码所需
问题描述:
好了,所以我想换一个目录777的文件模式,所以我使用的线路PHP执行外部命令 - 如何在用户名和密码所需
exec('chmod -R 777' . $dir);
其中$ dir是的目录路径目录我想改变
它似乎并不工作,但我没有得到它的错误,如果用户我执行的脚本是一个sudo用户,所以我必须输入密码后,我进入该命令,我将如何做到这一点?会不会像exec('chmod -R 777' . $dir\n 'password');
?
答
信息我从这个site
得到执行系统命令通过PHP
很多,我们需要执行在Linux系统上的系统命令一个时间 - 删除一个目录,或重新启动服务。但是,由于Apache不能以root权限运行,因此使用PHP的exec(),system()或passthru()函数来实现这一点几乎是不可能的。
对此的解决方案非常简单,特别是在Ubuntu上。 Apache的用户www-data需要被授予使用sudo执行某些应用程序的权限。
1.Run命令sudo visudo
2.At文件的末尾,添加以下
www-data ALL=NOPASSWD: /sbin/iptables, /usr/bin/du
这是假设你想运行iptables和使用超级用户杜(根)权限。但是,如果要使用超级用户权限运行的每个应用程序,然后添加以下的,而不是什么上面
www-data ALL=NOPASSWD: ALL
3.That的它,现在以下列方式使用exec()
您.PHP脚本中
exec ("sudo iptables -P FORWARD ACCEPT");
在这里,我只是复制粘贴该网站的内容,因为即使链接中断这可能会有所帮助。 – gvgvgvijayan 2014-09-03 12:57:10
@ seanyt123如果此答案解决了您的问题,请接受答案,这可能会增加*中的质量答案,方法是单击投票下方符号下方的刻度标记。 – gvgvgvijayan 2014-09-03 12:59:38