apache PHP SNMP -找不到模块

b1payxdu  于 2022-11-16  发布在  Apache
关注(0)|答案(9)|浏览(244)

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

eit6fx6z

eit6fx6z1#

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

2sbarzqh

2sbarzqh2#

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

apt-get install snmp
wbrvyc0a

wbrvyc0a3#

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

extension=php_snmp.dll

它应该看起来像:

;extension=php_snmp.dll
kmbjn2e3

kmbjn2e34#

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\附加功能\mibs
最后,您可以运行php -m
你的问题就会得到解决
我附上截图供您参考。x1c 0d1x

hk8txs48

hk8txs485#

在Linux上,我可以通过将其添加到我的/etc/php5/apache 2/conf. d/snmp. ini文件中来修复这些问题。
mibdir=/usr/共享/snmp/mibs
mibs=全部

nnsrf1az

nnsrf1az6#

我只是在我的机器上添加了

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

/etc/snmp/snmp.conf

a7qyws3x

a7qyws3x7#

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

kninwzqo

kninwzqo8#

偶然发现了这个将旧的Cacti迁移到Ubuntu 16的方法。
在Ubuntu/Debian软件包中,php-snmp依赖于php7.0-snmp,两者都没有自带MIB,也不依赖于snmp-mibs-downloader,因此SNMP模块最终失效,没有可用的MIB。
您应该安装snmp-mibs-downloader(或等效的),让它下载所有可用的MIB,看看是否有帮助。如果没有帮助,您可能需要在/etc/php/x.x/mods-available/snmp.ini中调整mibdirs和/或手动加载所需的MIB(通过mibs = ALL加载所有内容是可行的,但我认为这是一个不好的做法)。
如果没有可用的下载程序,请按照@Robin的建议从Net-SNMP获取MIB

anhgbhbe

anhgbhbe9#

我在php.ini中将extension=snmp更改为; extension=snmp

相关问题