【问题标题】:PHP cant find SNMP modules under Windows 7PHP 在 Windows 7 下找不到 SNMP 模块
【发布时间】:2014-08-28 21:43:30
【问题描述】:

我已启用 SNMP 模块,尝试使用模块中的功能。我已将 MIBDIRS 环境变量设置为我拥有 mib 的位置,但我仍然收到这些“找不到模块”警告:

Cannot find module (IP-MIB): At line 0 in (none)
Cannot find module (IF-MIB): At line 0 in (none)
Cannot find module (TCP-MIB): At line 0 in (none)
Cannot find module (UDP-MIB): At line 0 in (none)
Cannot find module (HOST-RESOURCES-MIB): At line 0 in (none)
Cannot find module (SNMPv2-MIB): At line 0 in (none)
Cannot find module (SNMPv2-SMI): At line 0 in (none)
Cannot find module (NOTIFICATION-LOG-MIB): At line 0 in (none)
Cannot find module (UCD-SNMP-MIB): At line 0 in (none)
Cannot find module (UCD-DEMO-MIB): At line 0 in (none)
Cannot find module (SNMP-TARGET-MIB): At line 0 in (none)
Cannot find module (NET-SNMP-AGENT-MIB): At line 0 in (none)
Cannot find module (DISMAN-EVENT-MIB): At line 0 in (none)
Cannot find module (SNMP-VIEW-BASED-ACM-MIB): At line 0 in (none)
Cannot find module (SNMP-COMMUNITY-MIB): At line 0 in (none)
Cannot find module (UCD-DLMOD-MIB): At line 0 in (none)
Cannot find module (SNMP-FRAMEWORK-MIB): At line 0 in (none)
Cannot find module (SNMP-MPD-MIB): At line 0 in (none)
Cannot find module (SNMP-USER-BASED-SM-MIB): At line 0 in (none)
Cannot find module (SNMP-NOTIFICATION-MIB): At line 0 in (none)
Cannot find module (SNMPv2-TM): At line 0 in (none)

我的 php.ini 设置是:

mibdir=C:\\Users\username\Downloads\Applications\Dev\PHP\5.4\net-snmp-mibs\net-snmp-5.7.2.1\mibs
mibs=all
extension=php_snmp.dll

我在 Windows 上。

它仍然会给出这些错误...

请问有什么见解吗?

【问题讨论】:

    标签: php snmp mib


    【解决方案1】:

    PHP 文档对 Windows 具有误导性; 为了消除错误并使 SNMP 模块正常工作,您必须在系统中添加一个名为 MIBDIRS 的环境变量并指向您的 mib 文件的位置.

    例如,在 Windows 7 上,系统属性 > 环境变量 > 用户变量部分,单击新建并添加 MIBDIRS,值为 C:\usr\mibs(或放置 mibs 文件夹的任何位置)。

    应使用 Net-SNMP 包提取文件,并使用 CLI 模式在 PHP 5.4.7 上使用版本 net-snmp-5.7.2.1 进行测试。

    【讨论】:

      【解决方案2】:

      根据 PHP SNMP 安装页面:

      Net-SNMP 的 Windows 发行版包含 SNMP 的支持文件 在 mibs 目录中。这个目录应该移动到 DRIVE:\usr\mibs,其中 DRIVE 必须替换为驱动器号 安装 PHP 的位置,例如 c:\usr\mibs。或者,您可以设置 MIBDIRS 环境变量指向您的 MIBs 文件夹。

      http://php.net/manual/en/snmp.installation.php

      【讨论】:

      • 谢谢,我已经在 php.ini 中使用了 mibdir 设置,但我尝试过尝试一下,包括将设置调整为 C:\usr\mibs - 仍然没有变化,从命令行调用 php 时,php 仍然给我那些“找不到模块..”错误。
      • 实际上,在进一步阅读您链接到的手册后,我意识到我误解并混淆了 mibdir= 的 php.ini 设置和 ENVIRONMENT VARIABLE b> 称为 MIBDIRS!!一旦我尝试在 Windows 中添加环境变量 MIBDIRS(尽管指南说它适用于 32 位 Windows)并重新打开命令行窗口 - 不再有警告,它可以工作!!!先生,您赢得了 100 分,但我会发布一个新答案来强调根本问题 - MIBDIRS 环境变量是必须的,而不是文档所说的可选......
      【解决方案3】:

      php包不包含mibs文件夹,你需要下载net-snmp的源文件并将文件夹复制到你的php目录中

      下载链接https://sourceforge.net/projects/net-snmp/files/net-snmp/5.7.3/

      之后,解压 zip 文件并将 mibs 文件夹复制到你的 php 目录

      例如,复制到 C:\PHP\Extras\mibs 然后添加一个名为 MIBDIRS 的新系统变量。它的值应该是:C:\PHP\Extras\mibs

      最后,你可以运行php -m

      您的问题将得到解决

      我附上截图供你参考。

      【讨论】:

        【解决方案4】:

        从另一个帖子复制:

        显然您可以设置 2 个环境变量。一个是 MIBDIRS,它是所有 MIB 文件所在的位置。另一个是 MIBS,我相信它是您要加载的 SNMP 模块。通过将 MIBS 设置为 ALL,我能够摆脱错误

        【讨论】:

        • 我知道那篇文章,您是否完全阅读了我的问题?在后半部分,我陈述了我的 php.ini 设置: 我的 php.ini 设置是:mibdir=C:\Users\username\Downloads\Applications\Dev\PHP\5.4\net-snmp-mibs\net-snmp-5.7 .2.1\mibs mibs=all extension=php_snmp.dll
        • 我可以知道您使用的是哪个网络服务器吗? Xamp 还是 Wamp?
        • 事实上我没有使用任何东西。我已将 PHP 提取到 C:\Users\username\Downloads\Applications\Dev\PHP\5.4\,并添加到我的路径中,所以我只是使用 php scriptname.php 从命令行使用它我目前不需要 Web 服务器满足我的发展需求。
        猜你喜欢
        • 1970-01-01
        • 2013-05-13
        • 2011-05-31
        • 2015-06-12
        • 1970-01-01
        • 2019-07-02
        • 2016-08-22
        • 1970-01-01
        相关资源
        最近更新 更多