好的我需要以 root 的身份运行我的Apache Web服务器。为此,我在终端输入了 whoami; 。它给了我输出: root 。但是当我通过执行以下php-script检查我的apache服务器是否以root用户身份运行时:< ?php echo whoami; ?> 它给了我输出: nobody 。那么在apache中以root用户身份执行/登录的任何建议
答案 0 :(得分:4)
我建议在您的服务器上创建一个外部PHP文件来处理与此扩展相关的所有内容。然后,您可以使用shell_exec
和sudo
一起调用此脚本。
这样,你可以将你的webserver用户放在你的sudoers文件中,让它以root身份运行php-cli。
然后,在您的脚本中,您只需使用:
$output = shell_exec("sudo /bin/php /yourscript.php");
这将是一个更多的安全解决方案,而不是以root身份运行Apache,在我看来,即使你知道自己在做什么,这也是一个非常糟糕的主意 。
答案 1 :(得分:1)
如果您知道自己在做什么,请查看文件 / etc / apache2 / envvars :
您可以自定义这些变量
export APACHE_RUN_USER=root
export APACHE_RUN_GROUP=root
答案 2 :(得分:0)
我回应了以root身份运行apache进程的问题。这只是个坏主意。 这就是为什么我最近发布了一个允许PHP获取真实Bash shell并与之交互的项目。在此处获取:https://github.com/merlinthemagic/MTS
下载后,您只需使用以下代码:
$shell = \MTS\Factories::getDevices()->getLocalHost()->getShell('bash', true);
$return1 = $shell->exeCmd('php /var/scripts/test.php');
//the return will be a string containing the return of the script
echo $return1;