Lighttpd en example.sh hoe?

Met het Elektor Embedded-Linux-board

Postby 300466 » Fri Nov 30, 2012 12:00 am

De lighttpd server toont inderdaad Hello world!', zoals blz 65 van het november nummer van de embedded cursus. De volgende stap, het example.sh script laten uitvoeren lukt mij niet. Hetzelfde 'Hello world!' wordt getoont. Ergens zit er iets fout. Heeft iemand dit wel werkend gekregen?'
300466
 
Posts: 5
Joined: Thu Jan 02, 2014 3:41 pm

Postby 300466 » Fri Nov 30, 2012 12:00 am

Het lijkt erop dat de cgi.conf wijziging op blz 65 van het november artikel niet klopt. Volgens mij moet er /htdocs voor /cgi-bin staan, zo: alias.url += ( "/cgi-bin" => var.server_root + "/htdocs/cgi-bin" ) .
Nu verschijnt de site van Figuur 14. Het schakelen gaat nog niet via de knop op de site, verder zoeken dus.
300466
 
Posts: 5
Joined: Thu Jan 02, 2014 3:41 pm

Postby 300466 » Sat Dec 01, 2012 12:00 am

Gevonden!!

In het gedownloade script voor example.sh in de if [ 'cat /sys/... opdracht horen rechtse quotes te staan: if [ `cat /sys/... Dit komt verderop nog een keer voor.

Verder in de regel echo "form action\"/cgi-bin/example.sh... is de directory cgi-bin te veel, de juiste directory wordt al aangegeven door de cgi.conf, dus: echo "

Nu werkt de webpage als bedoeld
300466
 
Posts: 5
Joined: Thu Jan 02, 2014 3:41 pm

Postby cas55 » Mon Dec 10, 2012 12:00 am

Hi, het leek erop dat het nu wel ging werken. Alleen gaat nu de LED niet meer uit en blijft ook de tekst steeds het zelfde.

Ik snap niet goed waar dit aan ligt.
cas55
 
Posts: 59
Joined: Thu Jan 02, 2014 3:41 pm

Postby cas55 » Mon Dec 10, 2012 12:00 am

Whow, goed van Morris!

Gewoon doen wat hij zegt. Dan gaat de boel dus wel werken. Ik zag het verschil niet tussen ' en ` maar dat was de nekslag!

(behalve dat ik ook nog een verwijzing niet goed had staan natuurlijk)

Zo gaaf, ..... eindelijk die kerstboom via mijn smartphone aan en uitzetten.....

in het kort dus:

bestand /etc/lighttpd/modules.conf
#include "conf.d/cgi.conf"

in
include "conf.d/cgi.conf"

dan in bestand /etc/lighttpd/conf.d/cgi.conf
#alias.url += ( "/cgi-bin" => server_root + "/cgi-bin" )

in
alias.url += ( "/cgi-bin" => var.server_root + "/htdocs/cgi-bin" )

en ".sh" => "/bin/sh", toevoegen
cgi.assign                 = ( ".pl"  => "/usr/bin/perl",                               ".cgi" => "/usr/bin/perl",                               ".rb"  => "/usr/bin/ruby",                               ".sh"  => "/bin/sh",                               ".erb" => "/usr/bin/eruby",                               ".py"  => "/usr/bin/python" )

daarna de map voor de cgi-programmas maken
mkdir -p /srv/www/htdocs/cgi-bin

en example.sh in directory /srv/www/htdocs/cgi-bin zetten
#!/bin/shif [ "$REQUEST_METHOD" == "POST" ]then   if [ `cat /sys/class/gpio/gpio3/value` == 1 ]   then      echo 0 > /sys/class/gpio/gpio3/value   else      echo 1 > /sys/class/gpio/gpio3/value   fifiecho "Content-Type: text/html; charset=utf-8"echo ""echo " "echo "  "echo "    Webserver CGI Port 3 (LED) "echo "  "echo "  "echo "   Control-Panel CGI Port 3 "if [ `cat /sys/class/gpio/gpio3/value` == 1 ]then   echo "  Port: On"else   echo "  Port: Off"fiecho "   "echo "   "echo "   "echo "  "echo "  "echo " "

daarna pen configureren en de datarichting
echo 3 > /sys/class/gpio/exportecho out > /sys/class/gpio/gpio3/direction

tijdelijk de rechten aanpassen
chown lighttpd:lighttpd /sys/class/gpio/gpio3/value

dan rechten aanpassen van de webserver
mkdir /var/log/lighttpdchown -R lighttpd:lighttpd /var/log/lighttpd

Webserver starten:
root@gnublin:~# /etc/init.d/lighttpd restart
cas55
 
Posts: 59
Joined: Thu Jan 02, 2014 3:41 pm

Postby rickt » Tue Jan 29, 2013 12:00 am

Ik krijg de pagina met het script niet aan de gang.
example.sh aangepast en getest met bash -x example.sh.
Kijk op https://help.ubuntu.com/community/Beginners/BashScripting
om de script taal bash te begrijpen.
Firefox vind nu wel de example.sh maar vraagt vervolgens hoe je een .sh script moet uitvoeren. Tja, met bash zou ik zeggen. Moet hier een aparte plugin worden toegevoegd?
Attachments
40.png

[The extension sh has been deactivated and can no longer be displayed.]

rickt
 
Posts: 4
Joined: Thu Jan 02, 2014 3:41 pm

Postby cas55 » Wed Jan 30, 2013 12:00 am

Hi Rick,

Ik ben er even uit, maar je hebt het toch over Embedded Linux (5) blz 65? Ik snap je opmerking over firefox en de plugin even niet.

De webserver start je op als root op je gnublin boardje.
Daar moet je het script hebben dat je dan start met:

./lighttpd-init.sh


Dit kan pas als je een netwerk verbinding hebt met je ELB boardje.
Je kan een willekeurige browser gebruiken om de webserver te benaderen die op het ELB boardje staat.

Gewoon jouw ip-adress gebruiken dat je via udhcpc gekregen hebt.
Ik hoop dat je hiermee weer verder komt,

gr. Cas
cas55
 
Posts: 59
Joined: Thu Jan 02, 2014 3:41 pm

Postby rickt » Sat Feb 02, 2013 12:00 am

Hallo Cas,

Ben er inmiddels uit.
Example.sh bevatte een foutje.

Gr. Rick
rickt
 
Posts: 4
Joined: Thu Jan 02, 2014 3:41 pm

Postby franzm » Thu Feb 28, 2013 12:00 am

Ik heb een probleem met het Linux-5 sh script example.sh.
Ik gebruik een Windows Vista laptop, waar het Linux bord aanhangt via USB. Ik heb een USB-Ethernet adapter van Conrad werkend (MCS7830). Communicatie met het Linux bord verloopt met de terminal emulator Tera Term 4.71. De eerste toepassing via http:// 192.168.0.59 loopt OK en toont op mijn LAN "Hello World!".
Het CGI script krijg ik niet werkend. Vooraan aantal controle regels toegevoegd:
#!bin/sh
echo "example.sh script 27-02-2013 "
echo "Script name `basename $0` "
echo "`date` "
a=1
b=1
if [ $a -eq $b ]
then
echo "gelijk "
else
echo "verschillend "
fi

echo "regel na if-then-else "

# rest van script ...

#END

Output die ik krijg:

example.sh script 27-02-2013
Script name example.sh
Fri Sep 30 11:03:13 UTC 2011

Wat ik ook doe, ik krijg het if statement niet werkend. Het lijkt erop dat Tera Term de "[" en "]" niet herkent.
Wie kan me helpen?

Alvast bedankt.

Franz'
franzm
 
Posts: 34
Joined: Thu Jan 02, 2014 3:29 pm

Postby franzm » Thu Feb 28, 2013 12:00 am

Ik ben er ondertussen uit wat de onderliggende oorzaak is.
De scripts zijn afkomstig uit de Windows omgeving en zijn in DOS formaat (\r\n), niet in Unix formaat (\n).
Alle regels moeten dus aangepast worden.
Dat kan het gemakkelijkst met:

tr -d '\r' < input.file > output.file

Daarna was het probleem opgelost!

Franz
franzm
 
Posts: 34
Joined: Thu Jan 02, 2014 3:29 pm

Next

Return to Aan de slag met Embedded Linux

Who is online

Users browsing this forum: No registered users and 1 guest