peter: anfänger :((...

...hi leute

kann mir jemand einen denkanstoss geben?
was könnte schuld sein das ein cgi-script (***.pl)
nach aufruf nicht gestartet sondern zum download angeboten wird?
am interpreter läuft es fehlerfrei ab.
aufgerufen wird es normal über ahref. (wie in der beispielseite die bei dem script dabeiwar angegeben, habe nur den pfad verändert)

danke im voraus

peter

  1. kann mir jemand einen denkanstoss geben?
    was könnte schuld sein das ein cgi-script (***.pl)
    nach aufruf nicht gestartet sondern zum download angeboten wird?

    Entweder DU hast es nicht in einm cgi-ausfuehrbaren verzeichnis auf dem server abgelegt, oder der server kennt den MIME tyle pl nicht und weiss nix damit anzufangen

    1. danke für die schnelle antwort,

      ich versuchs mal so
      (habe das cgi-script von ***.cgi in ***.pl umbenannt)
      das verzeichnis in dem es liegt habe ich auf lesen und ausführen incl. script (IIS4) gestellt.

      die datendateien liegen in einem verzeichnis das lesen und schreiben erlaubt.

      den pfad am anfang des scripts habe ich in
      c:\perl\bin\perl.exe
      geändert. (das ist auch der richtige pfad, nur bin ich mir mit der syntax nicht ganz sicher, aber auch nur perl.exe[perl ist in der reg. eingetragen]funkt nicht).

      wenn ich alle endungen von ***.pl wieder auf ***.cgi setze, kommt der serverfehler 500 :(((

      hat dazu noch jemand ne idee?

      danke im voraus

      peter

      kann mir jemand einen denkanstoss geben?
      was könnte schuld sein das ein cgi-script (***.pl)
      nach aufruf nicht gestartet sondern zum download angeboten wird?

      Entweder DU hast es nicht in einm cgi-ausfuehrbaren verzeichnis auf dem server abgelegt, oder der server kennt den MIME tyle pl nicht und weiss nix damit anzufangen

      1. die datendateien liegen in einem verzeichnis das lesen und schreiben erlaubt.

        Das Verzeichnis ist nicht wichtig. Es muss ein fuer den WebServer ausfuehrbares Verzeichnis sein ... in der Regel cgi-bin .. da muessen deine Scripte liegen.

        1. tja... :)
          habe ich oben geschrieben
          das script selbst liegt in einem verzeichnis das die ausführen-rechte besitzt.
          (unter nt4 / IIS4 heisst es scrips, vergleichbar mit cgi-bin)
          nur die datendatein in die das script schreiben soll liegen in einem verzeichnis das auf lesen/schreiben gesetzt ist

          danke

          peter

          nochwas, habe jetzt unter nt/explorer 4.1 das script mal aufgerufen, da kommt die fehlermeldung %1 ist kein zulässiges win32 programm.
          dieses %1 bezieht sich offensichtlich auf den parameter mit dem perl aufgerufen wird.
          C:\Perl\bin\Perl.exe "%1" %*
          so steht der aufruf seit der perl installation in den einstellungen

          *verzweifelt* :(((

          die datendateien liegen in einem verzeichnis das lesen und schreiben erlaubt.

          Das Verzeichnis ist nicht wichtig. Es muss ein fuer den WebServer ausfuehrbares Verzeichnis sein ... in der Regel cgi-bin .. da muessen deine Scripte liegen.

          1. Also, ist die erste Zeile #!C:/perl/perl.exe oder einfach nur C:/perl/perl.exe?

            Gibt dein Script was wie Content-type: text/html\n\n aus?

            Kannst du es mit dem Perlinterpreter so einfach starten, und wie ist die Ausgabe?

            1. hi!

              Also, ist die erste Zeile #!C:/perl/perl.exe oder einfach nur C:/perl/perl.exe?

              Wie schon oftmals erwähnt: nur der Apache benötigt diese Zeile unter Windows.

              bye, Frank!

              1. hilft nix, geht nicht :(((
                trotzdem danke

                peter

                hi!

                Also, ist die erste Zeile #!C:/perl/perl.exe oder einfach nur C:/perl/perl.exe?

                Wie schon oftmals erwähnt: nur der Apache benötigt diese Zeile unter Windows.

                bye, Frank!

                1. Also, versuch mal folgendes Script

                  print "Content-type: text/html\n\n";
                  print "Test\n";

                  Versuch das mal zum laufen zu bringen. Wenn es nicht geht, sag mir mal die genaue Fehlermeldung oder www.apache.org.

                  1. danke für die hilfe :)
                    als erstes, ich habe den IIS4 komplett neu aufgesetzt.
                    alle standardeinstellungen belassen

                    also, ich habe dann folgendes gemacht
                    die zwei zeilen in eine textdatei kopiert und dann in test.pl umbenannt
                    dann habe ich sie in mein scriptverzeichnis gestellt.
                    dann habe ich eine html seite erstellt die nichts enthält ausser einen link auf die test.pl
                    dann passiert folgendes
                    wenn ich das script aufrufe:
                    fehler 403
                    also habe ich dem scriptverzeichnis auch leserechte vergeben.
                    wenn ich sie dann aufrufe, bekomme ich das downloadfenster das mir anbietet die datei zu speichern.

                    arghhh, ich werd nicht mehr :(((

                    peter

                    Also, versuch mal folgendes Script

                    print "Content-type: text/html\n\n";
                    print "Test\n";

                    Versuch das mal zum laufen zu bringen. Wenn es nicht geht, sag mir mal die genaue Fehlermeldung oder www.apache.org.

                    1. Hallo Peter,
                      Wenn ich hier unter NT lokal Perl zum Laufen kriegen will muß ich noch folgenden Schlüssel in der Registry hinzufügen:
                      HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\W3SVC\Parameters\ScriptMap
                      Typ REG_SZ
                      pl:REG_SZ: C:\PERL\BIN\PERL %s %s
                      Keine Ahnung ob das beim IIS auch funzt.
                      Gruß,
                      Wolfgang

                    2. also, ich habe dann folgendes gemacht
                      die zwei zeilen in eine textdatei kopiert und dann in test.pl umbenannt
                      dann habe ich sie in mein scriptverzeichnis gestellt.
                      dann habe ich eine html seite erstellt die nichts enthält ausser einen link auf die test.pl
                      dann passiert folgendes
                      wenn ich das script aufrufe:
                      fehler 403
                      also habe ich dem scriptverzeichnis auch leserechte vergeben.
                      wenn ich sie dann aufrufe, bekomme ich das downloadfenster das mir anbietet die datei zu speichern.

                      Also, speicher die Datei mal, und seh sie dir mal an. Steht da das Script drin (Content-type:.....) oder nur Test?

  2. Hallo Peter!

    ...hi leute

    kann mir jemand einen denkanstoss geben?
    was könnte schuld sein das ein cgi-script (***.pl)
    nach aufruf nicht gestartet sondern zum download angeboten wird?

    Unter Win-NT/IIS wird nach meiner Erfahrung der Registry-Eintrag aus dem Beitrag von Wolfgang benötigt. Hinzuzufügen ist noch, daß das Skriptverzeichnis als ausführbar aber *nicht* als lesbar deklariert sein sollte - ansonsten kommt das Problem mit dem Download. Anscheinend funzt es ab IIS4.x aber noch wieder anders, siehe dazu

    http://www.whitecrow.demon.co.uk/steve/iis4.html      bzw.
      http://www.whitecrow.demon.co.uk/steve/perlfaq/runperl.html

    Ich hab das selber mangels IIS4 nicht getestet, aber wenn Du mit den Informationen dort weiterkommst wäre es nett, wenn Du kurz Deine Erfahrungen mit IIS4 posten würdest.

    Viele Grüße!

    Andreas

    P.S.: Interessant ist auch http://www.webclub.ru/materials/perliis/index.html, die Registry-Einträge sind auch für nicht so sprachgewandte (wie mich...) daraus zu entnehmen ;-)