USBカメラでjpgをキャプチャするfswebcamを呼び出すスクリプトがあります。私は "chmodの+ X webcam.sh" と、それが実行可能にしました:PHPからraspbianでbashスクリプトを実行する
ファイル:/var/www/html/webcam.sh
#!/bin/bash
DATE=$(date + "%Y-%m-%d_%H%M")
fswebcam -r 640x480 /home/pi/webcam/$DATE.jpg
これには、sudoをせずにコマンドラインで正常に動作しています私は小さなPHPページを作りました:
ファイル:/var/www/html/index.php
<?php
$output = shell_exec('sh /var/www/html/webcam.sh');
echo "<pre>$output</pre>";
?>
私がウェブページに行くと、私は空白のページを取得し、何のJPGは作成されません私のwebcamフォルダにあります。
私は、次のエラーを得た: Apache2 error log
だから、私は、PHPで私のコールを修正しようとしました:私もsudoersのファイル
www-data ALL=NOPASSWD: /path/to/script
に以下を追加しました
<?php
$output = shell_exec('/usr/bin/sudo /bin/bash /var/www/html/webcam.sh');
echo "<pre>$output</pre>";
?>
しかし、私はまだエラーが発生します:apache2 log error
私はこのスレッドからすべてを試しました:How to run .sh script with php?
ご存知ですか?事前に
おかげで、
ビクター
まだ動作しない場合は、スクリプトの出力を投稿してください。 – d3L
上記のコードを試しましたが、サーバーからエラーが発生しました:HTTPエラー500です。エラーログに「PHP解析エラー:構文エラー、予期しない 'echo'(T_ECHO)/ var/www /html/index.php on line 3 "を参照してください。 私はそれらのエコー行をコメントすると、空白のページが表示され、エラーログに "デバイスを開くエラー:/ dev/video0 open:許可が拒否されました"というメッセージが表示されます –
あなたが許してくれたことを最後に確認しました。だから私はサーバーに "adduser www-data video"でカメラにアクセスする許可を与え、 "chown -R www-data/home/pi/webcam"でフォルダを書き込む許可を与えた。 –