2013-05-09 63 views
7

我已启用SNMP模块尝试模块中的功能。我已经设置了MIBDIRS环境变量在那里我有我的MIB,但我还是让这些“找不到模块”警告:PHP SNMP - 无法找到模块

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上。

回答

7

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

+0

这些与bash环境和net-snmp工具类似(不确定它们是否与此相关)。很高兴你找到答案。 :) – 2013-05-13 14:40:44

+0

我相信PHP在后面使用的是Net-SNMP,所以我认为它很有意义,它为什么类似于你熟悉的net-snmp工具:) – PLui 2013-05-13 17:19:04

3

打开php.ini和线看起来像添加一些神奇的分号:

extension=php_snmp.dll 

它应该看起来像:

;extension=php_snmp.dll 
+1

这是真的,如果我不需要SNMP,但在这种情况下,我真的这样做。我想我可能找到了解决这个问题的方法。让我回答我自己的问题。谢谢! – PLui 2013-05-10 17:02:03

+0

您是否看到如何安装SNMP?看看这里http://technet.microsoft.com/en-us/library/cc759570(v=ws.10).aspx – 2013-05-10 17:24:18

+0

是不是允许你在Windows机器上执行snmpget/snmpwalk的SNMP服务?即监视Windows机器?如果是这样,那不是我想要做的。我想要从Windows机器上获取和走,而不是。 – PLui 2013-05-10 19:08:50

3

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

mibdir =的/ usr /共享/ SNMP/MIB的
的MIB =所有

-1

刚刚从Windows组件向导,如果你使用的是Windows添加简单网络管理协议(进入管理和监视工具)。根据需要重新启动Windows,然后重试。

0

我只是固定在这里我的机器上加入

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

/etc/snmp/snmp.conf

0

面临着类似的问题,但在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 : 

所以,注释掉MIB的线在该文件中解决它。

2

我已经得到了同样的问题在Ubuntu与php7.1和溶液安装SNMP包

apt-get install snmp 
+0

完美谢谢。 – Offboard 2017-01-15 01:27:51

0

的PHP包不包括MIB的文件夹,你必须做的就是下载源代码NET-SNMP的文件和文件夹复制到你的php目录

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

,解压压缩文件并复制文件夹中的MIB到你的PHP目录

例如,将其复制到C:\ PHP \ Extras \ mibs
Thne添加一个名为MIBDIRS的新系统变量。其值应为:C:\ PHP \额外\ MIB的

最后,你可以运行php -m

,您的问题将是resoved

我附上截图,供大家参考。 enter image description here