PHP - 发现是否存在Debian软件包

时间:2011-06-22 13:35:21

标签: php linux unix package

我希望能够发现我们的生产服务器上是否安装了Debian软件包,其功能应该与extension_loaded()类似。

有人可以推荐一种方法吗?我只能假设我应该使用exec()并解析'未找到命令'的返回值,我想知道是否有更安全/更好的选项。

2 个答案:

答案 0 :(得分:2)

如果您有权执行,那么您可以使用以下之一:

whereis packagename

apt-cache policy packagename

答案 1 :(得分:2)

您可以为此编写一个简单的API。它应该做如下的事情;

  • 让php将想要的包写入xml文件,文本文件或数据库,以及使用shell应用程序,perl应用程序或其他任何内容阅读的任何内容。
  • 在服务器级别,读出文件,数据库,检查包是否存在,并在输出文件,数据库表或其他任何内容中返回值。
  • 使用php读出输出文件并将其显示给您的用户

上述提出的解决方案的缺点是需要一些时间,例如。您无法实时检查包的可用性。如果这实际上是强制性的,你可以写一个不带任何输入的php脚本,但是读出应该从数据库或文本文件中检查的包,其中值已经过广泛测试,例如。使用正则表达式。通过这种方式,您确定恶意用户无法注入shell命令。