Homepage Wiki Forum Buy

Webserver mit CGI

Aus GNUBLIN

Dieser Artikel beschreibt die Webserverkonfiguration in der ELDK-Version. Die Beschreibung für die GNUBLIN Distribution findet man hier Webserver Debian

Um auf einfache Weise einen Webserver mit CGI zu betreiben, sind folgende Schritte auf dem GNUBLIN-Board nötig:

  • Netzwerk einrichten, gemäß GNUBLIN-Wiki-Anleitung
  • Lighttp konfigurieren

Dazu geht man wie folgt vor:

In der Datei /etc/lighttpd/modules.conf den Eintrag:

#include "conf.d/cgi.conf"

ändern in

include "conf.d/cgi.conf"

In der Datei /etc/lighttpd/conf.d/cgi.conf den Eintrag:

#alias.url += ( "/cgi-bin" => server_root + "/cgi-bin" )

ändern in

alias.url += ( "/cgi-bin" => "/var/www/cgi-bin" )


Sofern man einfache Shell-Skripte mit CGI nutzen möchte, ist zusätzlich noch folgender Eintrag zum cgi.assign in dieser Datei hinzuzufügen.

".sh"  => "/bin/sh"

Dabei ist auf den korrekten Syntax zu achten, besonders auf das Komma und die Anführungszeichen.

Im Verzeichnis /srv/www/htdocs ist jetzt ein Unterverzeichnis mit dem Namen cgi-bin zu erstellen.

Folgendes einfaches Beispiel-Skript welches in diesem cgi-bin-Verzeichnis abgespeichert werden muss, dient dazu den GPIO-Port 11 zu steuern.

Hierzu ist vorher dieser Port als Ausgang gemäß Wiki zu aktivieren, gegebenenfalls sind dessen Rechte anzupassen.

 #!/bin/sh
 
 if [ "$REQUEST_METHOD" == "POST" ] 
 then
  if [ `cat /sys/class/gpio/gpio11/value` == 1 ] 
  then
	echo 0 > /sys/class/gpio/gpio11/value
  else
	echo 1 > /sys/class/gpio/gpio11/value
  fi
 fi


 echo "Content-Type: text/html; charset=utf-8"
 echo "" 
 echo "<html>"
 echo " <head>"
 echo "   <title>Mit Webserver und CGI Port 11 ansteuern</title>"
 echo " </head>"
 echo " <body>"
 echo "  <h1>Mit Webserver und CGI Port 11 ansteuern</h1>"
 if [ `cat /sys/class/gpio/gpio11/value` == 1 ] 
 then
	echo "  Portstatus: An"
 else
	echo "  Portstatus: Aus"
 fi
 echo "  <br><br>"
 echo "  <form action\"/cgi-bin/beispiel.sh\" method = \"POST\">"
 echo "  <input type=\"submit\" value=\"Umschalten\">"
 echo " </form>"
 echo " </body>"
 echo "</html>"
 

Jetzt kann man den Webserver starten:

root@gnublin:/# /etc/init.d/lighttpd start
Syntax OK

Sofern die Konfiguration des Webservers in Ordnung ist, bekommt man dies bestätigt. Bei einer fehlerhaften Konfiguration erhält man eine entsprechende Meldung.

Wenn der Start des Servers erfolgreich war, kann man mit einem Webbrowser auf den Server zugreifen, wobei der Pfad zum CGI-Skript der IP-Adresse anzuhängen ist. z.B.:

http://192.168.0.2/cgi-bin/beispiel.sh

Jetzt sollte man zu einer Web-Oberfläche gelangen, mit der man den Port 11 des Boards steuern kann. Sofern man an diesem Port eine LED oder ein Relais angeschlossen hat, kann man dieses jetzt über den Browser ein- und ausschalten.

In anderen Sprachen