PLui
PLui

Reputation: 765

PHP SNMP - Cannot find module

I've enabled the SNMP module was trying to the functions in the module. I have set the MIBDIRS environment variable to where I have my mibs but I'm still getting these "Cannot find module" warnings:

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)

I know I have fixed this once but I can't seem to fix it again...what else can I try?

I'm on Windows.

Upvotes: 17

Views: 37086

Answers (9)

Ephrem Getachew
Ephrem Getachew

Reputation: 31

I changed extension=snmp to ; extension=snmp in php.ini

Upvotes: 1

Gendalph
Gendalph

Reputation: 47

Stumbled upon this migrating older Cacti to Ubuntu 16.

In Ubuntu/Debian package php-snmp depends on php7.0-snmp, neither of which come with MIBs or depend on snmp-mibs-downloader, hence SNMP module ends up being defunct with no MIBs available.

What you should do is install snmp-mibs-downloader (or equivalent) and let it download all available MIBs and see if that helps. If it doesn't, you might need to adjust mibdirs in /etc/php/x.x/mods-available/snmp.ini and/or manually load required MIBs (loading everything via mibs = ALL would work, but I consider it bad practice).

If no downloader is available, follow @Robin's advice and get MIBs from Net-SNMP

Upvotes: 2

buqing
buqing

Reputation: 1015

The php package doesn't include mibs folder, what you have to do is download the source file of net-snmp and copy the folder into your php directory

download link https://sourceforge.net/projects/net-snmp/files/net-snmp/5.7.3/

after that, unzip the zip file and copy the mibs folder to your php directory

for exmaple,copy it to C:\PHP\Extras\mibs
Thne add a new system variable called MIBDIRS. Its value should be: C:\PHP\Extras\mibs

Finally, you can run php -m

and you issue will be resoved

I attach a screenshot for your reference.enter image description here

Upvotes: 6

marcus
marcus

Reputation: 651

I've got the same problem in Ubuntu with php7.1 and the solution was installing snmp package

apt-get install snmp

Upvotes: 10

Aayush Bhardwaj
Aayush Bhardwaj

Reputation: 21

Faced a similar problem but in Ubuntu -

In /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 :

So , commenting out the mibs line in this file solved it .

Upvotes: 2

Teddy
Teddy

Reputation: 6163

I just fixed it on my machine here by adding

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

to /etc/snmp/snmp.conf.

Upvotes: 2

tc0nn
tc0nn

Reputation: 63

On linux, I was able to fix these by adding this to my /etc/php5/apache2/conf.d/snmp.ini file.

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

Upvotes: 6

PLui
PLui

Reputation: 765

Apparently there are 2 environment variables you can set. One is MIBDIRS which is where all the MIB files are. Another is MIBS, which I believe is which SNMP modules you want to load. By setting MIBS to ALL, I was able to get rid of the errors.

Upvotes: 12

Open your php.ini and add some magical semicolon at line that look like:

extension=php_snmp.dll

It should look like:

;extension=php_snmp.dll

Upvotes: 10

Related Questions