Php Apache作为ubuntu上的root用户

Php Apache作为ubuntu上的root用户,php,apache,xampp,Php,Apache,Xampp,好的,我需要以root用户身份运行Apache web服务器。为此,我键入了whoami在终端中。它给我的输出是:root。但是,当我通过执行以下php脚本检查apache服务器是否以root用户身份运行时:它给我输出:没有人。因此,任何关于在apache中以root用户身份执行/登录的建议???如果您知道自己在做什么,请查看文件/etc/apache2/envvars: 您可以自定义这些变量 export APACHE_RUN_USER=root export APACHE_RUN_GROUP

好的,我需要以root用户身份运行Apache web服务器。为此,我键入了whoami在终端中。它给我的输出是:root。但是,当我通过执行以下php脚本检查apache服务器是否以root用户身份运行时:它给我输出:没有人。因此,任何关于在apache中以root用户身份执行/登录的建议???

如果您知道自己在做什么,请查看文件/etc/apache2/envvars

您可以自定义这些变量

export APACHE_RUN_USER=root
export APACHE_RUN_GROUP=root

我建议在您的服务器上创建一个外部PHP文件,处理与此扩展相关的所有内容。然后,您可以使用
shell\u exec
结合
sudo
调用此脚本

通过这种方式,您可以将Web服务器用户放入sudoers文件中,并让它以root用户身份运行PHPCLI

然后,在脚本中,您可以简单地使用:

$output = shell_exec("sudo /bin/php /yourscript.php");

这将是一个比以root身份运行Apache更安全的解决方案,在我看来,这是一个非常糟糕的主意,即使您知道自己在做什么

我回应了以root用户身份运行apache进程的问题。这只是个坏主意。 这就是为什么我最近发布了一个项目,它允许PHP获得一个真正的Bash shell并与之交互。在这里获取:

下载后,您只需使用以下代码:

$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;

因为我正在进行xen虚拟化。我正在使用LIBVIRT-PHP与虚拟机监控程序对话,以开始创建销毁等。为此,我使用了此PHP脚本:当我执行此脚本时,它会显示:警告:LIBVIRT_domain_destroy()[function.LIBVIRT domain destroy]:第5行/opt/lampp/htdocs/xampp/shutdown.php中的操作virDomainDestroy禁止只读访问我认为连接到libvirt不需要以root用户身份运行Apache/php。你只需要在连接时提供正确的凭据。对于100万用户来说会更快吗?在最初的问题中,性能不是一个问题。就像我说的,这是一个非常糟糕的做法,我不会太依赖它。YMMV.不工作;错误:Apache未被设计为在作为根目录运行时提供页面服务。存在已知的争用条件,\n\t允许任何本地用户读取系统上的任何文件。如果仍希望以root用户身份提供页面,请将-DBIG_SECURITY_洞添加到CFLAGS env变量,然后重新构建服务器。强烈建议您修改httpd.conf文件中的User指令,以列出非root用户。是的,这可能自2012年以来发生了更改。