[PHP-users 28069] 外部プログラムの起動

梅田 耕佑 kousuke_umeda @ yahoo.co.jp
2006年 1月 11日 (水) 05:26:09 JST


はじめまして、php初心者です。
現在、phpからwebベースでjava applicationを起動するように
したいのですが、うまく動作しません。
そもそもセキュリティー上無理なのでしょうか?
どなたかアドバイスを頂けないでしょうか?

動作環境:
OS:Vine Linux 2.6
php:PHP Version 4.3.10
Server version: Apache/1.3.27 (Unix)  (Vine/Linux)

現状:
・javaのサンプルプログラムとして文字列を表示するだけの
プログラムを作成してjavacコマンドでコンパイル、
javaコマンドでの実行を確認。

・コマンドラインからは以下のコマンドでの実行を確認。
>php -r 'system("java Sample");'

・webベースで実行するために、以下のphpプログラムを作成。
  <?php
  echo system("java Sample 2>&1");
  ?>

すると、以下のようなエラーメッセージがブラウザに出力され
る。
 Exception in thread "main"
java.lang.NoClassDefFoundError: Sample (wrong name:
Sample) at java.lang.ClassLoader.defineClass0(Native
Method) at
java.lang.ClassLoader.defineClass(ClassLoader.java:537) at
java.security.SecureClassLoader.defineClass(SecureClassLoader.java:123)
at
java.net.URLClassLoader.defineClass(URLClassLoader.java:251)
at
java.net.URLClassLoader.access$100(URLClassLoader.java:55)
at java.net.URLClassLoader$1.run(URLClassLoader.java:194)
at java.security.AccessController.doPrivileged(Native
Method) at
java.net.URLClassLoader.findClass(URLClassLoader.java:187)
at java.lang.ClassLoader.loadClass(ClassLoader.java:289)
at
sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:274)
at java.lang.ClassLoader.loadClass(ClassLoader.java:235)
at
java.lang.ClassLoader.loadClassInternal(ClassLoader.java:302)
at
java.lang.ClassLoader.loadClassInternal(ClassLoader.java:302)


といった状況です。
ちなみにjavaのclassファイルはownerをapacheにしています。

長くなりましたが、以上です。
どうぞよろしくお願いします。


PHP-users メーリングリストの案内