2016-07-06 15 views
2

Ich verwende eine Apache-Webseite auf meinem Raspberry Pi. Wenn ich mich mit dem Netzwerk des Pi verbinde, kann ich auf diese Webseite zugreifen. Auf dieser Webseite würde ich gerne eine Schaltfläche haben, die ein Shell-Skript innerhalb des Pi selbst ausführt. Das ganze Skript läuft fswebcam, so dass die USB-Webcam, die an den Pi angeschlossen ist, einen Screenshot macht. Was ich nicht kann, ist, dass ich das .sh-Skript von der Webseite des PI aus aufrufen kann. Vielleicht läuft es als. CGI aus dem CGI-Bin? Nicht einmal sicher, wie die Syntax in PHP aussehen würde. Jede Hilfe wird geschätzt.Ausführen eines Shell-Skripts von Raspberry Pi-Webseite

Hier ist das .sh-Skript ausgeführt wird fswebcam bei seiner relevant:

#!/bin/bash 
DATE=$(date +"%Y-%m-%d_%H%M") 
fswebcam -r 1920x1080 --no-banner /var/www/html/$DATE.jpg 

Prost!

+1

Sie können es entweder über PHP mit 'system()' oder 'exec()' oder 'shell_exec()' oder ähnlichem ausführen. Alternativ konfigurieren Sie Apache zum Ausführen von Shell-Skripten mit cgi-bin (vielleicht http://httpd.apache.org/docs/current/howto/cgi.html kann helfen) – apokryfos

Antwort

1
<?php 
$last_line = system('path/to/your_script.sh', $retval); 
echo "<pre>".print_r($last_line,true)."</pre>"; 
echo "<pre>".print_r($retval,true)."</pre>"; 

Wenn Sie die Seite öffnen, sollte dies das Skript ausführen und so viele Informationen wie möglich auf lesbare Weise ausgeben.

+1

Absolute Pfad dosnt scheinen zu durchlaufen, ich bekomme einen Wert von 0 angezeigt, wenn ich die Seite öffne. Ich habe es geändert, um auf seinen eigenen lokalen Ordner zu verweisen, und die .sh dorthin verschoben, und jetzt gibt es 127 zurück. Nicht sicher, was von diesen Zahlen zu schließen ist? –

+1

Hast du einen Schnappschuss von der Webcam bekommen? Sonst werfen Sie einen Blick in die Webcam selbst. Wenn Sie über die Befehlszeile darauf zugreifen können, sollten Sie auch Informationen zu den Ergebnissen erhalten, die Sie dort erhalten können. – DocRattie

+1

Wenn ich die Shell über die Befehlszeile ausführen, bekomme ich einen Snapshot, aber wenn ich die Webseite öffne passiert nichts. –