【问题标题】:Performing PHP/SQL queries on a server with no direct access在没有直接访问权限的服务器上执行 PHP/SQL 查询
【发布时间】:2014-08-01 13:28:39
【问题描述】:

我正在整理一个 PHP 页面,以便在 Cisco CallManager 服务器上执行 Informix SQL 查询,无论出于什么奇怪的原因,它都不允许通过 unixodbc 或 PDO 直接访问其呼叫详细信息报告。我可以通过 ssh 连接到服务器并正常运行查询,但我需要找到一种远程执行这些查询的方法,以便我可以将它们放在经过身份验证的用户的网页上(身份验证是通过安全 LDAP 进行的——这件作品已经很好了) .这如何实现?

【问题讨论】:

  • 如果不能用PHP连接数据库,那么就不能直接连接。如果查询的数据有些是静态的,您可以在该服务器上编写 shell 脚本来运行查询并将数据输出到文本文件或 .json 文件,然后使用 PHP 读取。
  • 谢谢你,纤毛病。我很感谢您的意见,几乎是我的想法,但我希望有人有更好的主意:(非常感谢。

标签: php sql informix cisco


【解决方案1】:

如果您可以通过 SSH 访问数据库服务器,我假设您可以访问 informix 机器外壳上的必要端口。

您被禁止远程使用此端口的事实很可能是informix服务器上的设置,不允许远程连接。

解决方案可能是使用 SSH 隧道并将 informix 上的本地端口映射到 PHP 机器上的端口。

如果我以上所有假设都是正确的,informix 服务器会将其视为本地连接

可以找到有关如何设置此类隧道的操作指南,例如这里: http://www.revsys.com/writings/quicktips/ssh-tunnel.html

将类似于: ssh -f user@informixserver.com -L 9908:informixserver.com.com:9908 -N

本地帖子 9908 比映射到 informix 机器上的端口 9908

请注意,通过该端口的“远程”地址将是您用来建立隧道的 iformix 服务器地址,因此如果数据库服务器真的想查看 127.0.0.1,则只有这不起作用,但可以调整很多

请注意(如果有效)在 PHP 中配置连接时,您需要相应地为您的数据库主机设置端口)

【讨论】:

    【解决方案2】:

    我不熟悉 unixodbc 或 PDO,但如果我是你,我不会尝试直接查询 Call Manager db。

    您不想给服务器的 CPU 带来压力,最好让 CPU 管理关键任务任务。

    如果服务器发生任何不良情况(与您的操作相关或无关),TAC(思科客户支持)也可能会告知您处于不受支持的情况下

    使用呼叫管理器,您可以将 CDR 导出到远程 FTP/TFTP 服务器。我会查询该服务器。这可能更安全。

    只是一个想法......

    【讨论】:

      猜你喜欢
      • 2012-05-20
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-05-15
      • 2021-06-11
      • 1970-01-01
      相关资源
      最近更新 更多