[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 メーリングリストの案内