[PHP-users 16003]WEBからスキャナーを起動する方法について

cheese ruru cheeseruru @ yahoo.co.jp
2003年 6月 18日 (水) 00:24:47 JST


杉本です。

ご存知でしたら教えて頂けないでしょうか?

WEB上からスキャナーを起動したいのですが、起動するコマン
ド(EXEC,SYSTEM)等が
思うように動作しないのです。lsコマンド等は動作するのを確
認しましたが、
スキャナ起動コマンドscanimageを動作させることができてい
ません。
この問題を解決する方法をご存知ないですか?

もうすこし詳しく説明します。

PHPから外部コマンド(具体的にはスキャナ起動scanimageコマ
ンド)をしたいのです。
ウェブ上のボタンを押下することで、PHPが起動し、そこから
外部実行コマンドを発行
するというものです。

外部実行コマンドも「ls」や「a.out」は実行できます。
しかし、スキャンコマンドである「scanimage」(http://www.mostang.com/sane/
)は
実行されません。

「パーミッション」の問題:
rootでも一般ユーザーでも同じようです。

「scanimage」の問題の場合:
代替案が今のところありません。

「環境」の問題の場合:
PHPのEXECやSYSTEMコマンドを利用する際、環境変数等はどの
ように設定するのでしょうか?

「PHP環境」の問題:
PHP.iniファイルでDIRを設定すると記述されたものも見ました
が、解決に至っていません。


動作環境:      Redhat Linux9.0 (カーネル2.4.20-13.9)
                PHP Version 4.3.1
                Apache/2.0.46(UNIX)
                

///-------------- サンプル scan.html --------------///
<html>
<meta http-equiv='Content-Type' content='text/html;
charset=euc-jp'>

        <body>
                <form action='scan.php' method='POST'>
                <input type='submit' value='scan execute'>
                </form>

        </body>
</html>

「submit」ボタンを押下すると、scan.phpが起動します。


///-------------- サンプル scan.php --------------///
<?php
        $ret = -1;
        $retCode = -1;

    exec("/bin/ls -l", $ret, $retCode);         
 //パターン1
    //exec("/usr/bin/scanimage -T", $ret, $retCode);    
//
パターン2
  //exec("a.out", $ret, $retCode);               
 //パターン3

        print "----- ret<br>\n";
        while(list($key, $value) = each($ret))
          {
                print("$value<br>\n");
          }
        print "-----<br>\n";

        print("retCode=".$retCode);
?>

外部コマンドを実行します。
パターン1)問題なく、カレントのリストを表示します。
パターン2)スキャンコマンドが実行されません。(問題個所
)
パターン3)scan.cppの実行ファイルa.outはprintf部分だけ
実行されます。


///-------------- サンプル scan.cpp --------------///
#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>

int main(){
        printf("Hello PHP World Start!!\n");
        system("/usr/bin/scanimage -T -d
canon630u:/dev/usb/scanner0;");
        printf("Hello PHP World Finish!!\n");
        return 0;
}

【処理内容】
1、開始コメント
2、スキャン開始コマンド
3、終了コメント

コマンドラインから直接a.outを実行するとスキャン起動しま
した。

以上です。


__________________________________________________
Do You Yahoo!?
Yahoo! BB is Broadband by Yahoo!  http://bb.yahoo.co.jp/



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