Steffi: Loakler Test unter Apache

Hi,
meine Perl-Programme benötigen im Internet die Angabe
#!/usr/bin/perl -w

beim lokalen Test aber
#!c:\xampp\perl\bin\perl.exe -w

Kann man Apache so einstellen, dass beim lokalen Test dieselbe Angabe wie im Internet möglich ist?
Danke
Steffi

  1. Hi,
    meine Perl-Programme benötigen im Internet die Angabe
    #!/usr/bin/perl -w

    beim lokalen Test aber
    #!c:\xampp\perl\bin\perl.exe -w

    Kann man Apache so einstellen, dass beim lokalen Test dieselbe Angabe wie im Internet möglich ist?
    Danke
    Steffi

    Hallo Steffi,

    das hat mit Apache nichts zu tun. Das was du mit "im Internet" bezeichnest liegt daran, dass hier der Perl-Interpreter auf Linux läuft (da gehört er auch hin ;-). Es gibt an, welche ausführbare Datei für die Interpretation des Perl-Scripts herangezogen werden soll.

    Im zweiten Fall ist es eben der Perl-Interpreter unter einer xampp-Installation auf deinem Windows-System.

    Also - mit einer Einstellung von Apache oder anderen Tricks wirst Du da so schnell nichts machen können.

    Vielleicht wäre es möglich, dass Du sowohl auf dem Live-System als auch bei Dir lokal ein Alias auf den Perl-Interpreter setzt, sodass Du in Deinem Script z.B. nur "perl -w" schreiben musst. Das würde auch funktionieren, wenn sich der Perl-Interpreter in Deinem Pfad befindet (also Umgebungsvariable PATH unter Windows, bei Linux kommt es auf die Shell an).

    Beste Grüße,

    Oliver Bildesheim,
    www.bitconsultancy.de

    1. hallo,

      Also - mit einer Einstellung von Apache oder anderen Tricks wirst Du da so schnell nichts machen können.

      Doch, das ghet sehr wohl. Siehe auch http://de.selfhtml.org/perl/intro.htm#erstezeile

      Grüße aus Berlin

      Christoph S.

      --
      Visitenkarte
      ss:| zu:) ls:& fo:) va:) sh:| rl:|
      1. Hallo!

        Doch, das ghet sehr wohl. Siehe auch http://de.selfhtml.org/perl/intro.htm#erstezeile

        Da steht ja, dass das einfachste ist, den Suchpfad auszunutzen. Und ich hatte Bezug auf die Frage genommen, ob sich Apache so einstellen lässt, dass die Angabe des Interpreters _identisch_ ist auf dem Live- und dem Test-System.

        Beste Grüße,
        Oliver Bildesheim

        1. Hell-O!

          Und ich hatte Bezug auf die Frage genommen, ob sich Apache so einstellen lässt, dass die Angabe des Interpreters _identisch_ ist auf dem Live- und dem Test-System.

          Unter Ausnutzen der von Christoph und mir genannten Direktive ignoriert Perl unter Windows die Shebang. Ergo kann sie lokal genauso lauten wie auf dem Server.

          Siechfred

          --
          Ich bin strenggenommen auch nur interessierter Laie. (molily)
          Kabelkuddelmuddel || Steuerfreie Geburtsbeihilfen?  || RT 221 Erfurt-Altstadt i.V.
      2. Hallo,

        habe versucht das folgende in die Registry zu bekommen.
        Shell\ExecCGI\Command oder Shell\Open\Command

        Hat leider nicht geklappt. Ich habe gedacht es geht mit:
        Markieren eines Perl-Dokuments, Rechte Maustaste, Öffnen mit (immer mit dem Programm öffnen), Perl.exe suchen und dort angeben.

        Muss man das direkt in die Registry eintragen, wenn ja wie?

        Gruß
        Steffi

        1. hallo,

          Ich habe gedacht es geht mit:
          Markieren eines Perl-Dokuments, Rechte Maustaste, Öffnen mit (immer mit dem Programm öffnen), Perl.exe suchen und dort angeben.

          Das reicht leider nicht aus.

          Muss man das direkt in die Registry eintragen, wenn ja wie?

          Bei einer Perl-Installation mit dem Installer von ActiveState werden die Werte in der registry eingetragen, wie das bei XAMPP aussieht, weiß ich nicht. Welche Stellen es sein müssen, damit ScriptInterpreterSource funktioniert, kannst du, wie bereits angegeben, in SELFHTML nachlesen (unter "Beachten Sie").

          Grüße aus Berlin

          Christoph S.

          --
          Visitenkarte
          ss:| zu:) ls:& fo:) va:) sh:| rl:|
  2. hallo,

    meine Perl-Programme benötigen im Internet die Angabe
    #!/usr/bin/perl -w

    Das hat mit dem Internet nichts zu tun. Das ist die Angabe, die der Server deines Providers benötigt.

    Kann man Apache so einstellen, dass beim lokalen Test dieselbe Angabe wie im Internet möglich ist?

    Nein. Es sei denn, du installierst dir ein Linuxsystem und richtest es so ein, daß der Pfad zum Perl-Interpreter derselbe ist.
    Auf einer Windows-Maschine kannst du allerdings diese erste Zeile umgehen bzw. deinen Apache anweisen, sie zu ignorieren. Das geschieht mit der Anweisung
      ScriptInterpreterSource registry
    Dann sucht der Apache in der registry nach, ob dort ein Pfad zum Perl-Interpreter eingetragen ist. Findet er dort nichts, muß er sich entweder auf die shebang verlassen oder eine Fehlermeldung ausgeben.

    Grüße aus Berlin

    Christoph S.

    --
    Visitenkarte
    ss:| zu:) ls:& fo:) va:) sh:| rl:|
  3. Hell-O!

    Kann man Apache so einstellen, dass beim lokalen Test dieselbe Angabe wie im Internet möglich ist?

    Ja, dafür gibt es die Direktive ScriptInterpreterSource.

    Siechfred

    --
    Ich bin strenggenommen auch nur interessierter Laie. (molily)
    Kabelkuddelmuddel || Steuerfreie Geburtsbeihilfen?  || RT 221 Erfurt-Altstadt i.V.
  4. Hi,

    meine Perl-Programme benötigen im Internet die Angabe
    #!/usr/bin/perl -w

    beim lokalen Test aber
    #!c:\xampp\perl\bin\perl.exe -w

    Jow, das geht ab perl5. Auf dem Laufwerk wo der Apache installiert ist, lege ein Verzeichnis an:
    c:\usr\bin (wenn das LW c: ist)
    In dieses Verzeichnis kopierst Du die perl.exe
    Somit kann die erste Zeile Deiner Scripts, die Shebang, unverändert bleiben.

    Nochn Tipp: Erstelle Deine PERLScripts lokal im Dateiformat UNIX. Dann kannst Du die 1:1 hochladen (binmode).

    --roro