16

我已启用 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)

我知道我已经修复了一次,但我似乎无法再次修复它......我还能尝试什么?

我在 Windows 上。

4

8 回答 8

12

我在 Ubuntu 中使用 php7.1 遇到了同样的问题,解决方案是安装 snmp 包

apt-get install snmp
于 2016-11-06T16:56:45.873 回答
11

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

于 2013-05-10T17:03:38.103 回答
7

打开你的php.ini并在如下行添加一些神奇的分号:

extension=php_snmp.dll

它应该看起来像:

;extension=php_snmp.dll
于 2013-05-09T17:58:57.533 回答
7

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

你的问题将得到解决

我附上截图供您参考。在此处输入图像描述

于 2016-11-16T16:47:08.833 回答
5

在 linux 上,我可以通过将其添加到我的 /etc/php5/apache2/conf.d/snmp.ini 文件来解决这些问题。

mibdir=/usr/share/snmp/mibs
mibs=all

于 2013-09-04T21:09:14.453 回答
2

我只是通过添加将它固定在我的机器上

mibdirs +/var/lib/mibs/iana:/var/lib/mibs/ietf

/etc/snmp/snmp.conf.

于 2014-12-01T21:11:14.923 回答
2

面临类似的问题,但在 Ubuntu -

在 /etc/snmp/snmp.conf -

# As the snmp packages come without MIB files due to license reasons, loading
# of MIBs is disabled by default. If you added the MIBs you can reenable
# loading them by commenting out the following line.
#mibs :

所以,注释掉这个文件中的 mibs 行解决了它。

于 2016-03-03T11:11:09.960 回答
2

偶然发现将旧 Cacti 迁移到 Ubuntu 16。

在 Ubuntu/Debian 包中php-snmp取决于php7.0-snmp,它们都没有附带 MIB 或取决于snmp-mibs-downloader,因此 SNMP 模块最终失效,没有可用的 MIB。

您应该做的是安装snmp-mibs-downloader(或等效的)并让它下载所有可用的 MIB,看看是否有帮助。如果没有,您可能需要调整mibdirs/etc/php/x.x/mods-available/snmp.ini/或手动加载所需的 MIB(通过加载所有内容都mibs = ALL可以,但我认为这是不好的做法)。

如果没有可用的下载器,请遵循@Robin 的建议并从Net-SNMP获取 MIB

于 2018-09-11T18:36:48.313 回答