2017-02-02 7 views
1

PHPを使ってWebページからbashスクリプトを実行しようとしている。通常のコマンドは 'ls'のようにうまく動作しますが、Piに接続されたWebカメラから画像を取得しようとすると、コマンド: 'fswebcam image.jpg'を使用しても全く動作しません。Bashスクリプトを使って写真を撮る。

私は問題を特定するのに苦労しています。権限とは何か関係ありますか?

端末から直接写真を撮ると問題はありません。

EDIT:最初にこの情報を含めない程度

申し訳ありませんが、私はすべての物事のウェブではかなりの初心者です...しかし、私はLEMPを使用していますので、私は、Apacheが実行されているが、使用していないスタックNginx

+0

それにもかかわらず動作します。どのようなエラーが出ますか? ( 'stderr'をファイルにリダイレクトしてみてください。)'/var/log/messages'のようなログには何かがありますか?回答を信じる場合は 'apache'を実行しているユーザに' su'して、それを実行できるかどうか確認してください。 – eewanco

+0

明日私はどのようなエラーメッセージを受け取って編集できるのかを確認します – Makoto

+0

[UFW BLOCK]エラーメッセージが/ var/log/messagesにあります – Makoto

答えて

1

あなたが疑っていたように、私はあなたがラズベリーパイのハードウェアに関する許可の問題に直面しているとも思っています。件名がラズベリー/ハードウェア/ linux/webを混在させているので、あなたはインターネット上の多くのクラップソリューションを読んでいます。彼らはしばしばどこでもroot権限を提供します!

私はApacheのログファイルだと思いますあなたの場合は

種類のエラーメッセージが、含まれています(/var/log/apache2/error.log?):Apacheのユーザー(WWW-データ)がそれにアクセスすることはできません現時点では

can not access /dev/vchiq 

を:

pi$ ls -l /dev/vchiq 
crw-rw---T 1 root video 248, 0 Jan 1 1970 /dev/vchiq 

タイプこれらのコマンドは:

sudo usermod -a -G video www-data 
sudo /etc/init.d/apache2 restart 

それはつまり、ユーザーのw ww-dataは(/ dev/vchiqにアクセスできる)グループビデオに追加されます。次に、Apacheファイルを再読み込みし、変更を通知するためにApacheサーバーを再起動する必要があります。注:Webからアクセスする必要がある場合は、gpioグループにwww-dataを追加します。

0

PHPはApacheのユーザ権限で動作します。

あなたのapacheユーザーはfswebcamを起動する権限を持っていますか?

ll $(which fswebcam) 
0

私が受け取ったエラーメッセージ(上記の投稿)から、/ dev/video0には他のユーザーのアクセス許可が必要であることがわかりました。ので、私の解決策はただ行くことだった。

chmod 777 /dev/video0 

は、それはおそらく、かなり汚いソリューションですが、「まったく動作しない」に手の込んだ

+1

私の答えを参照してください。ww-dataがビデオグループに入ると、彼はアクセス権があるので、/ dev/videoにchmodは必要ありません。再起動時に元の権限が/ dev/videoに復元されると思います。 –

+0

あなたは正しいapache/nginxが私を混乱させている – Makoto

関連する問題