PHP SNMP-找不到模块

PHP SNMP-找不到模块,php,apache,snmp,Php,Apache,Snmp,我已启用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

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

打开您的
php.ini
,在行中添加一些神奇的分号,如下所示:

extension=php_snmp.dll
;extension=php_snmp.dll
它应该是这样的:

extension=php_snmp.dll
;extension=php_snmp.dll

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

在linux上,我能够通过将其添加到/etc/php5/apache2/conf.d/snmp.ini文件来修复这些错误

mibdir=/usr/share/snmp/mibs

mibs=all

我刚刚在我的机器上通过添加

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

to
/etc/snmp/snmp.conf

面临类似的问题,但在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行就解决了这个问题。

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

apt-get install snmp

php包不包括mibs文件夹,您需要做的是下载NetSNMP的源文件并将该文件夹复制到php目录中

下载链接

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

对于exmaple,将其复制到C:\PHP\Extras\mibs
添加一个名为MIBDIRS的新系统变量。其值应为:C:\PHP\Extras\mibs

最后,您可以运行
php-m

你们的问题会得到解决


我附上一个截图供您参考。

偶然发现了将旧的仙人掌迁移到Ubuntu 16的过程

在Ubuntu/Debian软件包中,snmp依赖于
php7.0-snmp
,两者都不附带MIB,也不依赖于
snmp MIB downloader
,因此snmp模块在没有MIB可用的情况下失效

您应该做的是安装
snmpmibsdownloader
(或等效工具),让它下载所有可用的mib,看看是否有帮助。如果没有,您可能需要在<代码> /ETC/PHP/X.X/MODS可用/SNMP.IN/<代码>和/或手动加载所需的MIB(通过<代码> MIbs=所有都可以工作,但我认为这是不好的实践)来调整<代码> MIbdirs<代码>。


如果没有可用的下载程序,请按照@Robin的建议从

获取MIB。如果我不需要SNMP,这是正确的,但在本例中,我确实需要。我想我可能已经找到了解决这个问题的方法。让我回答我自己的问题。谢谢您看到如何安装SNMP了吗?看,SNMP服务不允许您在Windows机器上执行snmpget/snmpwalk吗?i、 e.监视Windows计算机?如果是这样,那不是我想做的。我想在Windows计算机上执行Get&walks操作,而不是to。对我来说,如果我删除分号,我的ampps localhost magicly将再次工作,情况正好相反。谢谢。这些类似于bash环境和netsnmp工具(不确定它们是否与此相关)。很高兴你找到了答案。:)我相信PHP在后面使用的是网络SNMP,所以我认为它与您熟悉的网络SNMP工具类似是有道理的:)