www-data需要授予Apache用户的特权,以使用来执行某些应用程序sudo。
- 运行命令
sudo visudo。实际上,我们要在etc/sudoers.file中进行编辑。为此,通过sudo visudo在终端中使用它,可以复制(temp)sudoers文件进行编辑。
- 在文件末尾,添加以下示例:-如果我们要使用command进行
restart抽烟,并使用command进行php问题中的其他操作,
www-data ALL=NOPASSWD: /etc/init.d/smokeping/restart, usr/bin/php
(这是假设您希望使用超级用户(root)特权运行restart和php命令,并且php在usr/bin/path中使用command )
但是,如果您希望使用超级用户权限运行每个应用程序,请添加以下内容而不是上面的内容:您可能不想这样做,因为对于ALL命令而言这非常危险。
www-data ALL=NOPASSWD: ALL
3. 编辑完sudoers文件后(通过visudo编辑sudoersso保存的临时文件并退出临时文件(visudo)以写入sudoers文件。(wq!)
4.就这样,现在在脚本中使用exec()或shell_exec以以下方式使用xxx.php。请记住sudo在php脚本中使用该命令之前要使用该命令。
例如:-
exec ("sudo /etc/init.d/smokeping restart 2>&1");
要么
shell_exec("sudo php -v");
因此,在您遇到的问题中,将要使用的命令添加到中,step no (2.)因为我要添加并根据需要更改PHP脚本。
这是与您的相同的问题/programming//a/22953339/1862107