PHPのコマンドライン実行時の警告について

このQ&Aのポイント
  • PHPのコマンドライン実行時に表示される警告(エラー)の意味と対処方法について教えてください。
  • WindowsXPのコマンドプロンプトやcygwinからPHPのコマンドライン実行時に表示される警告メッセージについて説明してください。
  • PHPのコマンドライン実行時に表示される「Cannot find module」のエラーメッセージが何を意味しているのか詳しく教えてください。
回答を見る
  • ベストアンサー

PHPのコマンドライン実行時の警告

以下のHelloWorld.phpをWindowsXPのコマンドプロンプトやcygwinから起動する(>php HelloWorld.php)と、 <?php print "Hello World !\n"; ?> 次のような警告(エラー?)が出るのですが、この意味は何でしょうか? またこのメッセージを出ないようにするにはどうすればよいのでしょうか。 Hello World ! 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 (SNMPv2-MIB): At line 0 in (none) Cannot find module (SNMPv2-SMI): 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 (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) よろしくお願いします。

  • PHP
  • 回答数2
  • ありがとう数1

質問者が選んだベストアンサー

  • ベストアンサー
  • x415f484f
  • ベストアンサー率71% (57/80)
回答No.1

PHP のバージョンとか詳しい環境がわからないので外しているかもしれないですが。 Cygwin の PHP パッケージはなかった記憶があるのですが、ご自分でコンパイルされたものでしょうか? それとも単に Cygwin から起動なさったと言う話で PHP の配布元サイトで Win32 版バイナリなのでしょうか? エラーメッセージからすると SNMP(Simple Network Management Protocol) の関連のものだと思われます。 # Linux の場合なら net-snmp のパッケージを入れれば済むだけですが。 PHP の設定ファイルで PHP の NET-SNMP のモジュールをロードしている箇所があればそれを 無効にすればよろしいかと思います。 デフォルトの設定ではおそらく読み込まないと思うのですが…… 設定ファイル(php.iniなど)で「extention=php_snmp.dll」が有効にされてたりしませんか?

kahata
質問者

お礼

ありがとうございました。 無意識に設定ファイル(php.ini)で「extention=php_snmp.dll」を有効にしていました。コメントアウトするとエラーメッセージは表示されなくなりました。 参考のために、「extention=php_snmp.dll」はどういう機能のモジュールか、もしよろしければ教えてください。

その他の回答 (1)

  • x415f484f
  • ベストアンサー率71% (57/80)
回答No.2

> 参考のために、「extention=php_snmp.dll」はどういう機能のモジュールか、もしよろしければ教えてください。 知り得る限りでは、SNMP というプロトコルは端末を遠隔で監視するためのプロトコルであり それを PHP からも使えるようにするものかと思われます。 もっと詳しいことは「win32+net-snmp+php」などのキーワードで google などで検索すると よろしいかと思います。 蛇足ですが、エラーはこれらを Windows の環境変数に設定でも回避することが可能なようです。 MIBS=ALL MIBSDIR=<PHP をインストールしたディレクトリ>\mibs # 例 MIBSDIR=c:\php\mibs ただし使わない機能であればモジュールを外してておくほうがよろしいかと思われます。

関連するQ&A

  • サーバーに記録されるエラーログの修正方法

    現在、レンタルサーバーを利用してのサイト運営を行っておりますが、エラーログに下記のエラーが出てしまいます。 同一時刻・同一IPから以下のエラーログがワンセットで記録されているような形です。 私自身の知識不足が原因で、このエラーログの意味・原因がまったくわからない状態です。 解決するためのヒントやアドバイスをお願い致します。 【エラーログ】 MIB search path: $HOME/.snmp/mibs:/usr/local/share/snmp/mibs Cannot find module (HOST-RESOURCES-MIB): At line 0 in (none) Cannot find module (HOST-RESOURCES-TYPES): At line 0 in (none) Cannot find module (MTA-MIB): At line 0 in (none) Cannot find module (NETWORK-SERVICES-MIB): At line 0 in (none) Cannot find module (UCD-DISKIO-MIB): At line 0 in (none) Cannot find module (SCTP-MIB): At line 0 in (none) Cannot find module (SNMPv2-MIB): At line 0 in (none) Cannot find module (IF-MIB): At line 0 in (none) Cannot find module (IP-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 (NOTIFICATION-LOG-MIB): At line 0 in (none) Cannot find module (DISMAN-EVENT-MIB): At line 0 in (none) Cannot find module (DISMAN-SCHEDULE-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 (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-FRAMEWORK-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 (IPV6-ICMP-MIB): At line 0 in (none) Cannot find module (IPV6-MIB): At line 0 in (none) Cannot find module (IPV6-TCP-MIB): At line 0 in (none) Cannot find module (IPV6-UDP-MIB): At line 0 in (none) Cannot find module (NET-SNMP-PASS-MIB): At line 0 in (none) Cannot find module (NET-SNMP-EXTEND-MIB): At line 0 in (none) Cannot find module (UCD-DLMOD-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) Cannot find module (NET-SNMP-VACM-MIB): At line 0 in (none) 【経緯】 html+cssを基本にしたサイトとwordpressを用いたブログを運営しています。 レンタルサーバーA社からB社へと移行しましたが、その際には特に上記のようなエラーは無く、スムーズにサーバー移転ができました。 その後、アクセス数の増加から、B社の上位プランへの移行を行いました。B社ではプラン変更はできないため、現行プランを解約して上位プランを新規契約するという形です。この上位プランに移行した結果、上記のエラーログが記録されるようになりました。

  • CGI Errorが分かりません(IIS+PHP5+ActivePerl-5.8.7)

    初心者です。 http://kikuz0u.x0.com/memo/の Cacti (RRDToolフロントエンド) ~ Windows編 ~ を参考に今Cactiのインストールを行っていて CGI Error The specified CGI application misbehaved by not returning a complete set of HTTP headers. The headers it did return are: Cannot find module (IP-MIB): At line 0 in (none) Cannot find module (IF-MIB): At line 0 in (none)  ・  ・  ・  ・ 他 と表示されて、Cactiの初期設定画面が表示されない状態です。 phpinfoの確認では問題ありません。 moduleはmibsフォルダにあるファイルだと思うのですが システム環境変数でD:\PHP\extras\mibsで登録はしてます。(PHPインストールはDドライブ) 素人なので全く分かりません、、、 確認方法も分からない状態です。

  • NoClassDefFoundErrorの解決方法

    netbeansでjava.lang.NoClassDefFoundErrorの解決方法を教えて下さい。 NetBeans IDE 7.0を使ってJAVAで、「Hell World !」を表示するものを 作りました。 ソースコード public class HelloWorld { public static void main(String args[]) { System.out.println("Hello World!"); } } NetBeansで、 「実行]-「ファイルを実行」とすると、「Hello World!」と表示されます。 正しく動きます。 しかし、 「実行」-「プロジェクトを実行」とすると、以下のエラーメッセージがでます。 java.lang.NoClassDefFoundError: helloworld/HelloWorld Caused by: java.lang.ClassNotFoundException: helloworld.HelloWorld at java.net.URLClassLoader$1.run(URLClassLoader.java:202) at java.security.AccessController.doPrivileged(Native Method) at java.net.URLClassLoader.findClass(URLClassLoader.java:190) at java.lang.ClassLoader.loadClass(ClassLoader.java:306) at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:301) at java.lang.ClassLoader.loadClass(ClassLoader.java:247) Could not find the main class: helloworld.HelloWorld. Program will exit. Exception in thread "main" Java Result: 1 また、コマンドラインから以下の様に実行しても、実行してもエラーとなります。 C:\Program Files\Java\jdk1.6.0_25\bin>java.exe -jar C:\java\HelloWorld\dist\HelloWorld.jar Exception in thread "main" java.lang.NoClassDefFoundError: helloworld/HelloWord Caused by: java.lang.ClassNotFoundException: helloworld.HelloWorld at java.net.URLClassLoader$1.run(URLClassLoader.java:202) at java.security.AccessController.doPrivileged(Native Method) at java.net.URLClassLoader.findClass(URLClassLoader.java:190) at java.lang.ClassLoader.loadClass(ClassLoader.java:306) at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:301) at java.lang.ClassLoader.loadClass(ClassLoader.java:247) Could not find the main class: helloworld.HelloWorld. Program will exit. そこで、 ソースコードに、「package helloworld;」の記述を行いと期待した結果となりました。 NetBeansで、「実行」-「プロジェクトを実行」 コマンドラインから実行 しても、「Hello World!」と表示されます。 ソースコード package helloworld; public class HelloWorld { public static void main(String args[]) { System.out.println("Hello World!"); } } 何故、 「package helloworld;」の記述の追加で動いたのでしょうか。 あるとないとで、どう違うのでしょうか。 「package helloworld;」は、何を意味しているのでしょうか。 環境は、 JDK1.6(jdk1.6.0_25) クラスパスは未設定。

  • 実行時のNoClassDefFoundErrorが解決できません

    Windows で コマンドプロンプトから Java のプログラム実行時に NoClassDefFoundError が発生する問題で Web 等を参考にいろいろ対処してみたのですが、 どうしても解決しないでいます。 JDK, JRE は 1.6.0_01 を以下にインストールしており、 C:\Program Files\Java\jdk1.6.0_01 C:\Program Files\Java\jre1.6.0_01 C:\Program Files\Java\jdk1.6.0_01\bin にPATHを通しています。 CLASSPATH 環境変数は設定していません。 その上で、以下のことをやりました。 (1) HelloWorld.java というファイルを D:\test フォルダに作成する。   内容は以下の通り。 HelloWorld.java ------------------------------------------------------------------------------- package testpackage; public class HelloWorld { public static void main(String[] args) { System.out.println("Hello World!"); } } ------------------------------------------------------------------------------- (2) コマンドプロンプトで D:\test に移動し、以下を実行する。 javac HelloWorld.java (正常終了し、HelloWorld.class が D:\test に作成されたことを確認) (3) 引き続きコマンドプロンプトで、以下を実行する。(例外が発生) java HelloWorld ------------------------------------------------------------------------------- Exception in thread "main" java.lang.NoClassDefFoundError: HelloWorld (wrong nam e: testpackage/HelloWorld) at java.lang.ClassLoader.defineClass1(Native Method) at java.lang.ClassLoader.defineClass(Unknown Source) at java.security.SecureClassLoader.defineClass(Unknown Source) at java.net.URLClassLoader.defineClass(Unknown Source) at java.net.URLClassLoader.access$000(Unknown Source) at java.net.URLClassLoader$1.run(Unknown Source) at java.security.AccessController.doPrivileged(Native Method) at java.net.URLClassLoader.findClass(Unknown Source) at java.lang.ClassLoader.loadClass(Unknown Source) at sun.misc.Launcher$AppClassLoader.loadClass(Unknown Source) at java.lang.ClassLoader.loadClass(Unknown Source) at java.lang.ClassLoader.loadClassInternal(Unknown Source) ------------------------------------------------------------------------------- Web の情報を参考に java -cp . HelloWorld java -cp D:\test HelloWorld も実行してみましたが、同様の結果でした。 (4) 試しに以下も実行してみました。 javap HelloWorld ------------------------------------------------------------------------------- Compiled from "HelloWorld.java" public class testpackage.HelloWorld extends java.lang.Object{ public testpackage.HelloWorld(); public static void main(java.lang.String[]); } ------------------------------------------------------------------------------- 以上です。 これ以上の対処方法が全く思い当たらない状態なのですが、 原因のわかる方がいらっしゃいましたらお願いします。

    • ベストアンサー
    • Java
  • PHPエラー

    こんにちは。 初めてPHPでプログラミングをしている者です。 PHPのエラー解決方法で悩んでいます。 エラーの内容は Warning: session_start(): Cannot send session cookie - headers already sent by (output started at ~~) in ~~ Warning: session_start(): Cannot send session cache limiter - headers already sent (output started at ~~)in ~~~ です。 お時間のある方回答お待ちしています。

    • ベストアンサー
    • PHP
  • PHPでのmysql_connect実行について

    PHPでのmysql_connect実行について いつもお世話になります。 自宅WEBサーバーを構築しているのですが、 PHPからのmysql_connectが実行出来ずに困っています。 サーバー構成と事象を以下に記載しますので、 お分かりでしたら回答の程よろしくお願いいたします。 ■サーバー構成 ・OS : ubuntu10 server(コアシステムのみ) ・WEB : apache2(aptitudeにてインストール) ・DB : mysql5(aptitudeにてインストール) ・PHP : PHP5(aptitudeにてインストール) ■事象 WEBサイト内にてtest.phpを作成し、 $intDB_Con_ID = mysql_connect($CONST_HOST_IP_ADDR , $CONST_DB_USER_NAME , $CONST_DB_USER_PASS); と実行するが、intDB_Con_ID には何も変更されず、PHP実行コード下に 記載しているhtmlコードが実行されない。 ■事象発生後に実施した事 (1)PHPコード自体の実行確認   echo("CONST_HOST_IP_ADDR = " . $CONST_HOST_IP_ADDR . "\n");   にて変数の内容はページリクエスト結果に出力されいている事を確認。 (2)apache errorログの確認   PHP Startup: Unable to load dynamic library './pdo.so' -   ./pdo.so: cannot open shared object file: No such file or   directory in <b>Unknown</b> on line <b>0</b><br />   と出ている事を確認。 (3)httpd.confの確認   pdo.soを読み込んでいる箇所を探すが、pdo.so自体ファイル内容検索   にヒットしない。 (4)php.iniの確認   pdo.soを読み込んでいる箇所を探すが、pdo.so自体ファイル内容検索   にヒットしない。 (5)php.iniの編集   末尾に以下を追加   extension_dir = "/usr/lib/php5/20090626+lfs/"   extension = pdo.so (6)apacheの再起動後にログ確認   <b>Warning</b>: Module 'PDO' already loaded in <b>Unknown</b> on line <b>0</b><br />     と変わったが事象変わらず。 (7)phpのログ確認   PHP Warning: Module 'PDO' already loaded in Unknown on line 0   と変わったが事象変わらず。

    • ベストアンサー
    • PHP
  • session_start()を使うと警告メッセージが出ます。

    PHP4.2.2、apche1.3.27、VineLinux2.6を使っています。 PHPで、session_start()を使うと以下のような警告メッセージが出てしまいます。何かphp.ini内に、セッティングしないといけないことが あるのでしょうか? [ブラウザに表示されたメッセージ] Warning: Cannot send session cookie - headers already sent by (output started at /usr/local/apache/htdocs/a/a02.php:10) in /usr/local/apache/htdocs/a/a02.php on line 12 Warning: Cannot send session cache limiter - headers already sent (output started at /usr/local/apache/htdocs/a/a02.php:10) in /usr/local/apache/htdocs/a/a02.php on line 12 10 + 200 = 210 [実行したスクリプト] <html> <head> <title>aaa</title> </head> <body bgcolor="red"> <?php session_cache_limiter('private'); session_start(); $a = 10; $b = 200; $c = $a + $b; print("$a + $b = $c"); ?> </body> </html>

    • ベストアンサー
    • PHP
  • PHP のsetcookie()関数について

    PHP5を使ったHTML文書で、setcookie()関数を使っていますが、以下のようなメッセージが出てきてクッキーに新しいデータを書き込むことが出来ません。 環境はWindows10, IE11です。 PHP使用方法: $fname="mondai10.txt" setcookie("filename", $fname);  // line 38 setcookie("version",3); // line 39 メッセージ: Warning: Cannot modify header information - headers already sent by (output started at C:\xampp\htdocs\QAmondaiDisplay.php:3) in C:\xampp\htdocs\QAmondaiDisplay.php on line 38 Warning: Cannot modify header information - headers already sent by (output started at C:\xampp\htdocs\QAmondaiDisplay.php:3) in C:\xampp\htdocs\QAmondaiDisplay.php on line 39 そしてこのクッキーを次のようにJavaScriptで読み込んでいるのですが、表示させてみると書き込んだものとは全く異なるものが表示されます。 JavaSript 使用法: var cookiedata = window.document.cookie; window.document.getElementById("q1").innerHTML =cookiedata;; 実際に表示されるもの: PHPSESSID=57c35633ffc2fe44622ee27e61bf44eb; filename=yasudaShiroexpires=Mon, 08 Oct 2018 21:44:48 GMT そしてこの表示は、最後の時間以外はいつも同じです。 どこに問題があるのでしょうか? 詳しい方、どうか教えてください。

    • ベストアンサー
    • PHP
  • php4.2.3インストール後のapache起動時に・・・

    現在、Vine Linux 2.6r4で、apache2.0.50+php4.2.3をインストールしています。 apacheを起動時に、 Syntax error on line 863 of /usr/local/apache2/conf/httpd.conf: Cannot load /libphp4.so into server: /libphp4.so: cannot open shared object file: No such file or directory というエラーメッセージがでてしまいました。 httpd.confの記述には、 LoadModule php4_module /libphp4.so というものを記述していますが、ここでエラーがでてしまっています。 ライブラリが足りないということなのでしょうが、それがわかりません。 どなたかご存知の方がいらっしゃいましたらご教授願えませんでしょうか?

  • PHPでクッキーをセットできない

    PHPとJavaScriptを使っゲームを作っていますが、PHPでクッキーをセットしようとすると以下のようなメッセージが出てきて、データがセットされません。 「ヘッダー情報を修正できない」というメッセージはどんな意味なのでしょうか? setcookie()関数をどこで使えばうまくいくのでしょうか? 詳しい方がいらっしゃいましたら、よろしくお願いいたします。 使った関数=setcookie("gameOverTime", $cookieData, time() + 60*60); メッセージ= Warning: Cannot modify header information - headers already sent by (output started at C:\xampp\htdocs\QAgameOver.php:1) in C:\xampp\htdocs\QAgameOver.php on line 10

    • ベストアンサー
    • PHP

専門家に質問してみよう