Ergebnis 1 bis 19 von 19

Thema: [gelöst!] microperl: CGI-Problem mit Lighty

  1. #1
    IPPF-Einsteiger
    Registriert seit
    17.12.2009
    Beiträge
    16

    Frage [gelöst!] microperl: CGI-Problem mit Lighty

    Guten Abend Gemeinde,

    da es mein erster Thread hier ist, würde ich ganz gerne erstmal ein sehr, sehr herzliches Dankeschön an alle Freetz-Devs aussprechen. Das Projekt ist echt ein absoluter Traum für Hobbyfrickler wie mich.

    Nun zum Problem.

    Ich betreibe eine relativ aktuelles Trunk mit lighttpd, sowie microperl. Beim Aufruf eines Perl-Skripts erhalte ich immer einen HTTP 500 (internal server error).

    Code:
    $ tail -f /[lighttpd]/var/log/error.log
    2010-01-07 17:34:18: (mod_cgi.c.588) cgi died, pid: 1190
    Ich betreibe den Server nur auf Port 443 (HTTPS), PHP funktioniert (bis auf utf8_de/encoding, warum, weiß ich auch noch nicht).

    https://[url]/test.pl wirft nun den 500er.

    Um *.pl-Dateien ausführen zu können, habe ich in der lighty-additional config folgendes eingetragen:
    Code:
    # enable cgi support for *.pl files
    cgi.assign += ( ".pl" => "/usr/bin/perl" )
    Aber es ist so oder so nebensächlich, da *.cgi-Dateien den microperl ebenso zum sterben bringen.

    Das merkwürde ist, dass wenn ich das oben genannte "test.pl" über microperl aufrufe, es mir das richtige Ergebnis ausspuckt.

    Code:
    $ cat test.pl 
    #!/usr/bin/perl
    print("test...\n");
    Code:
    $ microperl test.pl 
    test...
    Meiner Meinung nach muss es ein Problem mit dem mod_cgi sein, aber ich weiß nicht, wie ich weitermachen könnte. Gibt es diesbezüglich Tips?

    Wäre sehr dankbar,
    Grüße, r.
    Geändert von ryazor (12.01.2010 um 15:43 Uhr) Grund: gelöst!

  2. #2
    Moderator Avatar von frank_m24
    Registriert seit
    20.08.2005
    Ort
    Niederrhein
    Beiträge
    17.425
    Wenn es eine Frage zu Freetz ist, dann verschieben wir sie besser mal ins Freetz Forum.
    Viele Grüße, Frank

    Router: FB 7390 84.05.20-freetz-devel-8772 (dnsmasq, dropbear, inadyn, openvpn)
    Netz: 1und1 Doppel-Flat 16000
    VoIP: 1und1, GMX, dus.net und sipgate über FBF
    Telefon: Siemens Telefon + T-Sinus 500i DECT Mobilteil an der 7390

    Ich beantworte keine technischen Fragen per PM oder Messenger, Support gehört ins Forum! Bezüglich administrativer Fragen könnt ihr mich natürlich jederzeit kontaktieren.

  3. #3
    IPPF-Einsteiger
    Registriert seit
    17.12.2009
    Beiträge
    16
    Ja ist es! Sorry meine Unachtsamkeit, kommt nicht wieder vor.

  4. #4
    IPPF-Fünftausend-VIP
    Registriert seit
    03.08.2007
    Ort
    BI
    Beiträge
    7.448
    Wie siehts denn mit den Dateirechten deines aufzurufenden Scriptes aus?
    Boxen: 7240, 7170, W900V, W701V jeweils mit mehr oder minder aktuellem Freetz-Trunk und irgendwelchen Modifizierungen.

    Aus aktuellem Anlaß: Support gehört ins Forum, IRC oder Trac-System, nicht in mein Postfach oder meine Messenger-Accounts.


    ICQ und andere Kontaktinformationen ab nun nur noch per PN.

  5. #5
    IPPF-Einsteiger
    Registriert seit
    17.12.2009
    Beiträge
    16
    selbst verständlich ist das x-bit gesetzt.

    Code:
    -rwxr-xr-x 1 root root 37 Jan 7 18:35 test.pl*

  6. #6
    IPPF-Fünftausend-VIP
    Registriert seit
    03.08.2007
    Ort
    BI
    Beiträge
    7.448
    Und all die anderen Tipps beachtet, die man beachten muss?
    Boxen: 7240, 7170, W900V, W701V jeweils mit mehr oder minder aktuellem Freetz-Trunk und irgendwelchen Modifizierungen.

    Aus aktuellem Anlaß: Support gehört ins Forum, IRC oder Trac-System, nicht in mein Postfach oder meine Messenger-Accounts.


    ICQ und andere Kontaktinformationen ab nun nur noch per PN.

  7. #7
    IPPF-Einsteiger
    Registriert seit
    17.12.2009
    Beiträge
    16
    Zitat Zitat von Silent-Tears Beitrag anzeigen
    Und all die anderen Tipps beachtet, die man beachten muss?
    Erstmal danke für deine Beiträge. Was meinst du genau mit den anderen Tipps? Die Wiki-Seite zu Lighty und microperl im Trac ist ja leider etwas dürftig. Aber selbst redend habe ich kein Modul von Lighty im menuconfig deaktiviert, sowie Perl mit FastCGI kompiliert.

    Mein Freetz läuft soweit, bis auf Kleinigkeiten mit denen ich mich noch beschäftigen werde, auch ziemlich stabil. Leider spuckt mir die error.log von Lighty ja nur aus, dass CGI "gestorben" ist, ein warum, oder Ansatz finde ich leider nicht (auch Onkel-Guhgel hilft nicht viel weiter). Microperl selbst hat ja keinen debug.log, was für solche Zwecke hilfreich wäre.

  8. #8
    IPPF-Urgestein
    Registriert seit
    22.04.2007
    Beiträge
    11.051
    Ich denke mal, daß hier eher die allgemeinen Linux/UNIX Tips gefragt sind, als etwas Freetz spezifisches.
    Du schreibst
    Code:
    $ cat test.pl 
    #!/usr/bin/perl
    print("test...\n");
    $ microperl test.pl 
    test...
    Der richtige Test wäre
    Code:
    # Interpreter ist /usr/bin/perl, nicht microperl
    /usr/bin/perl test.pl
    # direkter Aufruf
    ./test.pl
    Die nächste Frage wäre, ob Du chroot verwendest. Wenn ja, solltest DU Dich um die Voraussetzungen dafür kümmern.

  9. #9
    IPPF-Einsteiger
    Registriert seit
    17.12.2009
    Beiträge
    16
    Zitat Zitat von RalfFriedl Beitrag anzeigen
    Ich denke mal, daß hier eher die allgemeinen Linux/UNIX Tips gefragt sind, als etwas Freetz spezifisches.
    Du schreibst
    Code:
    $ cat test.pl 
    #!/usr/bin/perl
    print("test...\n");
    $ microperl test.pl 
    test...
    Der richtige Test wäre
    Code:
    # Interpreter ist /usr/bin/perl, nicht microperl
    /usr/bin/perl test.pl
    # direkter Aufruf
    ./test.pl
    Also ich würde mich nicht mehr als Unix-Anfänger bezeichnen. (l ist natürlich ein Symlink auf ls -alF)
    Code:
    $ l /usr/bin/perl
    lrwxrwxrwx 1 root root 9 Dec 24 12:19 /usr/bin/perl -> microperl*
    Und wie zu erwarten:
    Code:
    $ ./test.pl
    test...
    Die nächste Frage wäre, ob Du chroot verwendest. Wenn ja, solltest DU Dich um die Voraussetzungen dafür kümmern.
    Ich verwende chroot über USB-root, ja. Mein Minimal-System besteht nur aus dem AVM-Image, plus Dropbear und USB-Root. Und wie gesagt, es läuft sonst soweit rund.

  10. #10
    IPPF-Urgestein
    Registriert seit
    22.04.2007
    Beiträge
    11.051
    Mit unnötigen Full-Quotes machst Du Dich bei den Moderatoren hier schnell unbeliebt.

    Wenn Du die Grundlagen für die Ausführung von Shell-Skripts kennst, dann umso besser. Wenn Du mit einem Fehler kommst, kannst Du davon ausgehen, daß zunächst die einfachen Lösungsvorschläge kommen. Wenn Du die schon durch hast, kannst Du das schreiben, das spart Zeit auf beiden Seiten.

    Ich meinte vorhin eher, ob lighttpd chroot verwendet oder nicht.

    Außerdem, ist diese Datei test.pl tatsächlich genau das, was Du aufrufst? Die Ausgabe davon ist nicht genau das, was von einem CGI Skript erwartet wird.

  11. #11
    IPPF-Einsteiger
    Registriert seit
    17.12.2009
    Beiträge
    16
    Hallo RalfFriedl!

    Sorry, ich habe mich hier noch nicht eingelebt, dachte nicht, dass Quotes ungern gesehen sind. War nicht böse gemeint.

    Lighty benutzt ein chroot, ja. Was du mit deinen letzten zwei Sätzen meinst, verstehe ich jedoch nicht genau. Ich rufe test.pl bspw. über https://fritz.box/test.pl auf und erwarte eine ganz normale Ausgabe von "test..." ohne Header oder sowas.

    Gruß, r.

  12. #12
    Semi-Moderator Avatar von olistudent
    Registriert seit
    19.10.2004
    Ort
    Kaiserslautern
    Beiträge
    14.321
    Wenn du chroot benutzt, dann musst du perl und alle benötigten Libraries ins chroot kopieren.

    MfG Oliver
    Router: Fritz!Box Fon WLAN 7570, 7390, 7320, 7270, 3170
    Anbindung: T-Online DSL 16.000 RAM

    Visit ##fritzbox on Freenode for help
    Spenden für Freetz

  13. #13
    IPPF-Urgestein
    Registriert seit
    22.04.2007
    Beiträge
    11.051
    Ich hatte oben zwei Punkte angesprochen:

    Ist Dein Skript innerhalb des chroot ausführbar? Wie Oliver bereits geschrieben hat, müssen alle Programme und deren Libraries im chroot vorhanden sein, in diesem Fall also perl mitsamt allen Libraries. Als nicht Unix-Anfänger weißt Du das vermutlich.

    Zitat Zitat von ryazor Beitrag anzeigen
    Ich rufe test.pl bspw. über https://fritz.box/test.pl auf und erwarte eine ganz normale Ausgabe von "test..." ohne Header oder sowas.
    Anscheinend erwartest Du das. Aber was erwartet der Web-Server?

  14. #14
    IPPF-Einsteiger
    Registriert seit
    17.12.2009
    Beiträge
    16
    Vielen, vielen Dank an olistudent und RalfFriedl.

    Ja, ich wusste es schon mit den Libraries, hatte allerdings genau in diesem Fall nicht daran gedacht. Ein manuelles chroot über SSH hat mir die Augen geöffnet.

    Ich habe durch Freetz auch schon einiges Neues über Unix (speziell Daemons) dazugelernt. So auch in diesem Fall.

    Für alle anderen:
    Um microperl zum Laufen zu bekommen musste ich folgende Schritte erledigen (Webserver macht chroot auf /www ):

    Code:
    cp /usr/bin/microperl /www/usr/bin/perl
    chmod 755 /www/usr/bin/perl
    mkdir /www/lib
    cp /lib/ld-uClibc.so.0 /www/lib
    cp /lib/libc.so.0 /www/lib
    cp /lib/libgcc_s.so.1 /www/lib
    cp /lib/libm.so.0 /www/lib
    chmod -R 755 /www/lib
    Nochmals vielen Dank für eure Hilfe!
    Gruß, r.

  15. #15
    IPPF-Fünftausend-VIP
    Registriert seit
    03.08.2007
    Ort
    BI
    Beiträge
    7.448
    Wie wäre es mit nem Minihowto im trac, damit das zentral irgendwo zu finden ist?
    Boxen: 7240, 7170, W900V, W701V jeweils mit mehr oder minder aktuellem Freetz-Trunk und irgendwelchen Modifizierungen.

    Aus aktuellem Anlaß: Support gehört ins Forum, IRC oder Trac-System, nicht in mein Postfach oder meine Messenger-Accounts.


    ICQ und andere Kontaktinformationen ab nun nur noch per PN.

  16. #16
    IPPF-Urgestein
    Registriert seit
    22.04.2007
    Beiträge
    11.051
    Das Kommando cp hat noch die praktische Option -p, damit kann man sich nachher das chmod sparen.
    Code:
    cp -p /usr/bin/microperl /www/usr/bin/perl
    mkdir /www/lib
    cp -p /lib/ld-uClibc.so.0 /www/lib
    cp -p /lib/libc.so.0 /www/lib
    cp -p /lib/libgcc_s.so.1 /www/lib
    cp -p /lib/libm.so.0 /www/lib
    Außerdem könnte man mehrere Dateien mit einem Kommando kopieren, wenn das Zielverzeichnis gleich ist und es einem nicht zu unübersichtlich wird.

  17. #17
    IPPF-Einsteiger
    Registriert seit
    17.12.2009
    Beiträge
    16
    Danke für den Tipp mit dem "preserve" Argument, wie gesagt, man lernt nie aus
    Ich habe den Wiki-Artikel zum lighttpd etwas angepasst: http://trac.freetz.org/wiki/packages/lighttpd

    Ich hoffe, ich bin damit niemandem auf die Füße getreten o.ä. (mein erster Wiki-Artikel).

  18. #18
    IPPF-Fan
    Registriert seit
    26.01.2009
    Beiträge
    270
    Vergiss nicht, auf eventuelle Perl Module zu verweisen, die ggf. auch ins chroot kopiert werden müssen.

    Ciao
    Stephan

  19. #19
    Semi-Moderator Avatar von olistudent
    Registriert seit
    19.10.2004
    Ort
    Kaiserslautern
    Beiträge
    14.321
    Du machst das auf USB-Root? Ist halt schlecht, wenn jemand ohne USBRoot deine Anleitung versucht. Vielleicht ersetzt du /www besser durch /var/media/ftp/uStorxy/www oder so. Ansonsten weiter so.

    MfG Oliver
    Router: Fritz!Box Fon WLAN 7570, 7390, 7320, 7270, 3170
    Anbindung: T-Online DSL 16.000 RAM

    Visit ##fritzbox on Freenode for help
    Spenden für Freetz

Ähnliche Themen

  1. Lighty, freetz-devel-5747 und Benutzerkonten
    Von drscheme im Forum Freetz
    Antworten: 1
    Letzter Beitrag: 16.09.2010, 19:13
  2. Antworten: 13
    Letzter Beitrag: 04.11.2009, 10:22
  3. [PATCH] %ENV in microperl erlauben
    Von mehle im Forum Freetz
    Antworten: 3
    Letzter Beitrag: 10.02.2009, 13:30
  4. microperl 5.8.8 auf der Fritz!Box
    Von bodega im Forum FRITZ!Box Fon: Modifikationen
    Antworten: 24
    Letzter Beitrag: 06.10.2008, 10:41
  5. 15 Minuten Problem gelöst oder nicht gelöst?
    Von Onkel-Tobi im Forum TC300/Twintel/DP-L10
    Antworten: 3
    Letzter Beitrag: 26.02.2008, 00:48

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •