Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/274.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
获取php中可更新linux包的列表_Php_Linux - Fatal编程技术网

获取php中可更新linux包的列表

获取php中可更新linux包的列表,php,linux,Php,Linux,我试图通过PHP获取Linux上“可更新”软件包的信息(如“apt get upgrade”中所述) 基本上,我感兴趣的信息是“apt get upgrade”的输出,尤其是行:“29升级,0新安装,0删除,0未升级”。即使您不继续更新,也会出现这样的信息 所以我试着跑 print_r(exec('apt-get upgrade')); 但这在PHP中没有输出。有没有办法强迫exec“等待”输出?或者一般来说,exec()的“apt get”被锁定了吗 谢谢你的帮助 安全模式是否已禁用 使用s

我试图通过PHP获取Linux上“可更新”软件包的信息(如“apt get upgrade”中所述)

基本上,我感兴趣的信息是“apt get upgrade”的输出,尤其是行:“29升级,0新安装,0删除,0未升级”。即使您不继续更新,也会出现这样的信息

所以我试着跑

print_r(exec('apt-get upgrade'));
但这在PHP中没有输出。有没有办法强迫exec“等待”输出?或者一般来说,exec()的“apt get”被锁定了吗

谢谢你的帮助

  • 安全模式是否已禁用
  • 使用shell_exec()而不是exec()
  • 检查运行脚本的用户的权限(可能需要以root/sudo身份运行
    apt get upgrade
  • 试试这个:
  • $pkgs=shell_exec(“apt-get升级”);echo“$pkgs”

    说明:


    exec()
    只返回输出的最后一行,而
    shell\u exec()
    输出整个流。

    可以尝试:
    sudo apt get--只需打印升级即可。此外,用户还需要sudo。在命令行中,它工作了,但从php执行它却没有结果。默认情况下,safe_模式是关闭的(现在仔细检查),我尝试了你的代码片段,但它没有改变-blank pagewell我很确定这是一个权限问题。。您是否尝试过以root用户身份在PHPCLI中运行该代码段,因为我刚刚这么做了,它工作得非常完美!我已经认为这可能是一个权限问题,因为在简单的php脚本中实现包安装是一种安全问题。你知道我如何解决这个权限问题,这样我就可以直接在php文件中运行这个命令了吗?看看这篇文章,答案被标记为正确。。我认为这是目前为止最好的解决方案: