PHP7如何从各种数据源获取(接近)实时数据?

我正在制作(Apache2.4 / JS的Win2012r2上的PHP7)网站来协助帮助台。 被search的信息主要是关于计算机,用户和活动目录的信息。 一些其他资源,如MSSQL和一些从CMD行运行的遗留应用程序也提供信息。 信息还应该能够从现场支持工程师的移动设备中获得请求。

在所有情况下,80%的服务台可以使用最近的数据,但不是实时数据。 我已经设置了一堆PHP脚本和PS脚本来收集相关的数据,把它放在一个MySQL数据库,让服务台网站查询该信息(静态或与AJAX)。

在20%的情况下,服务台或FS工程师需要查看生命周期数据,以便在用户接通电话时进行故障排除。 现在我的困境是如何以可接受的速度获取数据(比如说几秒钟) – 但是必须以安全的方式完成!

到目前为止,我试过/考虑过:

1)使webrequest使用sys_exec()来触发一个外部脚本来获取数据。 问题:sys_exec()不是原生的MySql,因为它可用于所有MySql用户,因此不安全。

2)让(PHP)webrequest触发一个exec来启动一个获取数据的脚本。 问题:你需要给PHP脚本触发exec方式太多的权限,再次(高度)不安全。

3)webrequest将一行代码放入MySql中的几种方法(让我们把它命名为'todo')内存表,并从一个拥有更多权限的位置获得一个脚本,并且在web服务器环境之外(但在同一个服务器上)轮询'todo '表,执行请求并将结果返回到另一个表中。 虽然这个设置对潜在的黑客来说至less有5个障碍,使得它非常安全,但它依赖于请求者作为执行后端脚本的轮询,使其变慢。 尽pipe速度很慢,但我目前认为这是最好的select。

4)在请求的PHP和收集数据的脚本之间使用networking连接(localhost)。 问题:这只能起作用,因为请求的PHP只能使用默认权限执行UDP请求。 对于正确的TCP连接,请求的PHP脚本将需要root / Admin权限,这是不安全的。 尽pipe如果侦听的“收集脚本”将其数据返回到mysql中的临时内存表,但是即时防火墙迁移工作,将需要大量的状态/错误检查循环和-again轮询。

5)直接使用PHP来获得例如SNMP,WMI,MSSql和MySql数据。 虽然SNMP和MySql非常容易实现,但MSSQL和特别是WMI调用非常困难(至less对我来说)在Windows2012R2服务器上的PHP7上正常工作。

有没有人有一个想法,我怎么会从各种来源的数据转移回请求的PHP脚本,而不使这个设置一个重大的安全隐患? 或者,甚至更好,一个很好的解决scheme,以获得MSSQL和尤其是WMI从windows2012r2运行的PHP7下工作?