web-dev-qa-db-ja.com

PHP 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 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を使用しています。

12
PLui

どうやらあなたが設定できる2つの環境変数があります。 1つはMIBDIRSで、ここにすべてのMIBファイルがあります。もう1つはMIBSです。これは、ロードするSNMPモジュールであると私は信じています。 MIBSALLに設定することで、エラーを取り除くことができました。

8
PLui

Php7.1を使用したUbuntuでも同じ問題が発生し、解決策はsnmpパッケージをインストールすることでした

apt-get install snmp
9
marcus

Linuxでは、これを/etc/php5/Apache2/conf.d/snmp.iniファイルに追加することで、これらを修正することができました。

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

4
tc0nn

php.iniを開き、次のような魔法のセミコロンを行に追加します。

extension=php_snmp.dll

次のようになります。

;extension=php_snmp.dll

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を実行できます

そしてあなたの問題は解決されます

参考までにスクリーンショットを添付します。 enter image description here

3
Robin

ここに追加して自分のマシンで修正しました

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

to /etc/snmp/snmp.conf

1
Teddy

この古いCactiのUbuntu16への移行に遭遇しました。

Ubuntu/Debianパッケージではphp-snmpphp7.0-snmpに依存しており、どちらもMIBに付属しておらず、snmp-mibs-downloaderにも依存していないため、SNMPモジュールはMIBが利用できない状態で機能しなくなります。

snmp-mibs-downloader(または同等のもの)をインストールし、利用可能なすべてのMIBをダウンロードして、それが役立つかどうかを確認する必要があります。そうでない場合は、/etc/php/x.x/mods-available/snmp.inimibdirsを調整するか、必要なMIBを手動でロードする必要があります(mibs = ALLを介してすべてをロードすることは機能しますが、悪い習慣だと思います)。

利用可能なダウンローダーがない場合は、@ Robinのアドバイスに従って、 Net-SNMP からMIBを取得してください。

1
Gendalph

同様の問題に直面しましたが、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行をコメントアウトすると、問題が解決しました。

1
Aayush Bhardwaj