PHP - 发现 Debian 软件包是否存在
我希望能够发现 Debian 软件包是否已安装在我们的生产服务器上,其功能应该类似于 extension_loaded()
。
任何人都可以建议一个方法吗?我只能假设我应该使用 exec() 并解析“找不到命令”的返回值,但我想知道是否有更安全/更好的选择。
I want to be able to discover if a Debian package has been installed on our production server, the functionality should be just like extension_loaded()
.
Can anyone suggest a method? I can only assume I should use exec()
and parse return value for 'command not found', I'd like to know if there's a safer / better option though.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
如果您有执行权限,那么您可以使用以下其中一项:
If you have permission to exec, then you could use one of the following:
您可以为此编写一个简单的 API。它应该执行如下操作;
上述提出的解决方案的缺点是它需要一些时间,例如。您无法实时检查包裹的可用性。如果这实际上是强制性的,您可以编写一个 php 脚本,该脚本不接受任何输入,但读取应从数据库或文本文件中检查的包,其中的值已经过广泛测试,例如。使用正则表达式。通过这种方式,您可以确定恶意用户无法注入 shell 命令。
You could write a simple API for this. It should do something like the following;
The drawback of the above proposed solution is that it takes some time, eg. you cannot check for the availability of the package in realtime. If that is actually mandatory, you could write a php script which does not take any input, but reads out the packages that should be checked from a database or a text file, where the values have been extensively tested, eg. using a regex. On this way you're sure a malicious user cannot inject shell commands.