CGI - PiFace

  • Hey Leute,

    ich versuche eine Weboberfläche mit CGI zu realisieren. Standard Funktionen laufen super. Nur wenn ich mein PiFace ansteuern möchte funktioniert das nicht. Verwende ich ein Bash-Script geht es allerdings ... woran liegts?

    Bash-Script: script.cgi

    Bash
    #!/bin/bash
    
    
    gpio -p write 201 1

    http://IP-Adresse/cgi-bin/script.cgi lässt das Relays einschalten. Alles ok!

    Python-Script: script.py

    http://IP-Adresse/cgi-bin/script.py gibt mir diesen Fehler aus:

    Liegt wohl irgendwie an dem Initialisierungsprozess des PiFaces. Hat das schon mal jemand gelöst? Ps.: Der Code direkt am Pi ausgeführt funktioniert natürlich auch in Python.

    Vielen Dank für Rückmeldung.

    Gruß
    mobby

  • > Python-Script: script.py
    > usr/lib/cgi-bin/pumpe_on.py
    Da laeuft ein anderes Script !!

    > Der Code direkt am Pi ausgeführt funktioniert natürlich auch in Python
    Schon mal als User www-data (oder was auch immer der User fuer den
    Webserver ist) probiert ?

    Riecht irgendwie nach einem Rechteproblem. Ist zwar seltsam dass nirgends
    "Access Denied" oder sowas steht.

  • Hallo,

    klinke mich mal mit ein - ich habe exakt das gleiche Problem. Meine Versuche den user "www-data" in die Gruppe "spi" aufzunehmen sind auch fehlgeschlagen. Die SPI-Module sind vorhanden, werden in /dev angezeigt.

    Wenn ich das skript direkt ausführe funktioniert es bestens, nur die Ansteuerung über ein Webinterface meldet dieses Problem mit der Initialisierung.

    Hat noch jemand Ideen?

    Danke,
    chefkoch

  • Hi,
    ich klinke mich mal kurz mit ein:
    Das Buch von Michael Weigend -Raspberry Pi Porgrammieren mit Python-befasst sich mit dem Thema Python und cgi.
    Wichtige Schritte die angesprochen werden:
    -Skript muss ausführbar sein (sudo chmod +x meinPythonprogramm.py)
    -der Python Interpreter muss ebenfalls mit Root-Rechten aufgerufen werden, Herr Weigend legt dazu eine Kopie des Interpreter Aufrufs an:

    sudo cp /usr/bin/python2.7 /usr/bin/pythonRoot2.7

    anschließend noch das suid-Bit setzen:
    sudo chmod u+s /usr/bin/pythonRoot2.7

    -->Die Magic Line des Python Skripts muss entsprechend auf

    #!/usr/bin/pythonRoot2.7

    angepasst werden.

    Ich habe selbst damit einen Webserver im Betrieb, der die SPI Schnittstelle ansteuert,
    allerdings mit einer anderen Bibliothek.

    lg kobold254 und viel Erfolg

  • Großartig, das war die Lösung für mich - vielen Dank!

    Was jetzt noch kurz für Verwirrung gesorgt hat war mein Skript. Ich hatte erst /var/www/script.py geändert. Nachdem ich es in /usr/bin/cgi-lib/ angepasst hatte funktionierte es.

Jetzt mitmachen!

Du hast noch kein Benutzerkonto auf unserer Seite? Registriere dich kostenlos und nimm an unserer Community teil!