vop: IP-Kamera per cgi in html site einbinden

Moin,

bräuchte mal einen Tipp, als Perl-Ahnungsloser komme ich gerade nicht weiter.

Ich möchte das Bild einer IP-Kamera auf meiner website zeigen.
Dabei möchte ich nicht die URL der Kamera direkt in die html Datei schreiben, sondern den Weg über ein cgi script wählen, damit die Kamera IP nicht direkt zu erkennen ist sondern eben nur der Verweis auf das "kamera.cgi" in der html Datei auftaucht.

Dieses script läuft auch unter lighttpd und gibt im Browser das Bild der Kamera aus, das gleiche script unter Apache2 erzeugt den Fehler 500 im Browser. Die Einstellungen in der apache.config, Rechte, etc. sind korrekt, ich vermute einen Fehler im code des scripts über den der Apache stolpert?

Da der verwendete Rechner unter Ubuntu mit Apache2 läuft, würde ich das script gerne unter Apache zum laufen bringen.

kamera.cgi enthält:

#!/bin/bash  
/usr/bin/wget -O - http://192.168.2.110/livecam.jpg 2>/dev/null

Jemand ne Idee? Was könnte ich am code ändern?

  1. Hi,

    das gleiche script unter Apache2 erzeugt den Fehler 500 im Browser. Die Einstellungen in der apache.config, Rechte, etc. sind korrekt,

    dann hat Dir die Fehlermeldung des Servers gesagt, dass Du im Error-Log nachsehen sollst. Was steht dort?

    Cheatah

    --
    X-Self-Code: sh:( fo:} ch:~ rl:| br:> n4:& ie:% mo:) va:) de:] zu:) fl:{ ss:) ls:~ js:|
    X-Self-Code-Url: http://emmanuel.dammerer.at/selfcode.html
    X-Will-Answer-Email: No
    X-Please-Search-Archive-First: Absolutely Yes
    1. dann hat Dir die Fehlermeldung des Servers gesagt, dass Du im Error-Log nachsehen sollst. Was steht dort?

      192.168.2.112 - Vop [17/Nov/2010:08:38:53 +0100] "GET /cgi-bin/kamera1.cgi HTTP/1.1" 500 342 "-" "Mozilla/5.0 (X11; U; Linux i686; de; rv:1.9.2.12) Gecko/20101027 Ubuntu/9.10 (karmic) Firefox/3.6.12"

      1. Tach auch.

        dann hat Dir die Fehlermeldung des Servers gesagt, dass Du im Error-Log nachsehen sollst. Was steht dort?
        192.168.2.112 - Vop [17/Nov/2010:08:38:53 +0100] "GET /cgi-bin/kamera1.cgi HTTP/1.1" 500 342 "-" "Mozilla/5.0 (X11; U; Linux i686; de; rv:1.9.2.12) Gecko/20101027 Ubuntu/9.10 (karmic) Firefox/3.6.12"

        Das sieht nach einem access-log Eintrag aus, nicht nach einem error-log Eintrag.

        Bis die Tage,
        Matti

        1. Das sieht nach einem access-log Eintrag aus, nicht nach einem error-log Eintrag.

          da hast du absolut Recht, der entsprechende Eintrag aus dem error.log lautet:

          [Wed Nov 17 08:38:52 2010] [error] [client 192.168.2.112] malformed header from script. Bad header=\xff\xd8\xff\xdb: kamera1.cgi
          [Wed Nov 17 08:38:54 2010] [error] [client 192.168.2.112] malformed header from script. Bad header=\xff\xd8\xff\xdb: kamera1.cgi

          Also der "Header" im cgi File fehlerhaft?!?

          1. Also der "Header" im cgi File fehlerhaft?!?

            Nein, der header, den das Skript ausgibt.

            Struppi.

            1. Also der "Header" im cgi File fehlerhaft?!?

              Nein, der header, den das Skript ausgibt.

              Ahaa, danke für die Info. Und was kann ich tun, damit der header den das script ausgibt nicht fehlerhaft ist?

              1. Hi,

                Ahaa, danke für die Info. Und was kann ich tun, damit der header den das script ausgibt nicht fehlerhaft ist?

                zunächst einmal einen ausgeben. Gar kein HTTP-Header ist der fehlerhafteste HTTP-Header, den es gibt.

                Cheatah

                --
                X-Self-Code: sh:( fo:} ch:~ rl:| br:> n4:& ie:% mo:) va:) de:] zu:) fl:{ ss:) ls:~ js:|
                X-Self-Code-Url: http://emmanuel.dammerer.at/selfcode.html
                X-Will-Answer-Email: No
                X-Please-Search-Archive-First: Absolutely Yes
                1. Gar kein HTTP-Header ist der fehlerhafteste HTTP-Header, den es gibt.

                  Keine Ahnung wie ich es organisieren kann, dass dieses HTTP-Header Problem beseitigt wird.

                  Vielleicht könnt ihr mit der Ausgabe des Perl-Interpreters zu meiner kamera1.cgi noch hilfreiche Infos für mich herauslesen und mit eurem Perl Wissen interpretieren.

                    
                  $ perl -c kamera1.cgi  
                  Bareword found where operator expected at kamera1.cgi line 3, near "/usr/bin"  
                  	(Missing operator before bin?)  
                  Warning: Use of "-O" without parentheses is ambiguous at kamera1.cgi line 3.  
                  Number found where operator expected at kamera1.cgi line 3, near "jpg 2"  
                  	(Do you need to predeclare jpg?)  
                  syntax error at kamera1.cgi line 3, near "/usr/bin"  
                  kamera1.cgi had compilation errors.
                  
                  1. Problem gelöst, danke an eure Ideen.
                    @Matti Maekitalo: hatte erst spät dein posting gelesen und das hat mit einer kleinen Änderung zum Erfolg geführt!

                    dein Vorschlag war:

                    #!/bin/bash  
                    echo -n "Content-Type: image/jpeg\n\n"  
                    /usr/bin/wget -O - http://192.168.2.110/livecam.jpg 2>/dev/null
                    

                    das führte aber zum gleichen Error 500.
                    Ein Freund hat im Gegensatz zu mir die passenden man pages gelesen und sein Tipp war es so zu modifizieren:

                    #!/bin/bash  
                    echo -e "Content-Type: image/jpeg\r\n"  
                    /usr/bin/wget -O - http://192.168.2.110/livecam.jpg 2>/dev/null  
                    
                    

                    und läuft, ein virtuelles Bierchen für Matti!

  2. Tach auch.

    kamera.cgi enthält:

    #!/bin/bash
    echo -n "Content-Type: image/jpeg\n\n"

    /usr/bin/wget -O - http://192.168.2.110/livecam.jpg 2>/dev/null

      
    Da fehlt der Content-Type.  
    Beachte: mit "-n" schalte ich den Newline von echo, der standardmäßig mit rauskommt, aus, und schicke am Ende zwei Newlines raus (der header wird vom Content mit einer Leerzeile (=2 Newlines) getrennt).  
      
    Bis die Tage,  
    Matti
    
    -- 
    [Webapplikationen in C++ entwickeln](http://tntnet.org/)