PHP .sh Script per PhP starten.

T

tx_g

Gast
Hallo,
ich bin gerade dabei eine Kleinigkeit mit den GPIO Ports des Raspberry Pi's umzusetzen. Um diese Ports zu aktivieren und dann zu deaktivieren habe ich mir shell Scripte gebaut. Diese funktionieren auch. Nun will ich diese Scripte allerdings per php starten. Die liegen in /var/www/html/GPIO also im Webverzeichniss.
Bis jetzt habe ich das mit
PHP:
<?php
shell_exec('./GPIO/gpio6ein.sh');
sleep(1)
shell_exec('./GPIO/gpio6aus.sh');
?>
versucht. Allerdings scheinen die Scripte nicht ausgeführt zu werden, da der jeweilige Port aus bleibt.
Evtl könnt ihr mir da helfen was ich falsch gemacht habe.
 
Leider funktioniert das nicht. Wenn ich das Script aber über die Console aufrufen will bekomme ich mit dem www-data User diesen Fehler:
Code:
./gpio6ein.sh: 3: ./gpio6ein.sh: cannot create /sys/class/gpio/export: Permission denied                                                                                                                    
./gpio6ein.sh: 4: ./gpio6ein.sh: cannot create /sys/class/gpio/gpio6/direction: Permission denied                                                                                                           
./gpio6ein.sh: 5: ./gpio6ein.sh: cannot create /sys/class/gpio/gpio6/value: Permission denied                                                                                                               
chmod: Zugriff auf „/sys/class/gpio/gpio6/value“ nicht möglich: Datei oder Verzeichnis nicht gefunden                                                                                                       
chmod: Zugriff auf „/sys/class/gpio/gpio6/direction“ nicht möglich: Datei oder Verzeichnis nicht gefunden

Das Script sieht so aus:
Code:
#!/bin/sh                                                                                                                                                                                                   
                                                                                                                                                                                                            
sudo echo "6" > /sys/class/gpio/export                                                                                                                                                                      
sudo echo "out" > /sys/class/gpio/gpio6/direction                                                                                                                                                           
sudo echo "1" > /sys/class/gpio/gpio6/value                                                                                                                                                                 
sudo chmod 666 /sys/class/gpio/gpio6/value                                                                                                                                                                  
sudo chmod 666 /sys/class/gpio/gpio6/direction

Damit er sudo ausführen kann habe ich in die /etc/sudoers.tmp am ende noch www-data ALL=NOPASSWD: ALL eingefügt.

//EDIT

Funktioniert, wenn ich vor den Befehl bei shell_exec sudo setze
 
Zuletzt bearbeitet von einem Moderator:
Hallo,

ich will ja kein Spielverderber sein, aber den www-data Nutzer in die sudoer Liste und dazu noch ohne Passwort einzutragen ist der todsichere Weg, deinen Server Hackern als Zombie zur Verfügung zu stellen. :o
Du solltest da wirklich einen anderen Ansatz finden.

Viele Grüße
 

Ähnliche Themen

Zurück
Oben