Perl und Apache

Perl und Apache

am 07.05.2007 16:28:55 von Bastie

Hallo Perlen der Programmierer,

ich suche derzeit eine Möglichkeit Perl-Skripte unter Apache so zu
testen. Aus gewissen Gründen (möglichst nah am Produktivsystem) ist
Windows ersteinmal gegeben. Nun aber zu meinem Problemchen:

Vielleicht wissen einige von euch, dass man PHP wunderbar lose mit dem
Apache koppeln kann indem man:

# PHP
ScriptAlias /php/ "C:/Dokumente und Einstellungen/xyz/Desktop/
php-5.2.1-Win32/"
AddType application/x-httpd-php .php
AddType application/x-httpd-php .php3
AddType application/x-httpd-php .php4
Action application/x-httpd-php "/php/php-cgi.exe"

in die Konfiguration einträgt. Wunderbar wäre nun wenn man auch

#Perl
ScriptAlias /perl/ "C:/Dokumente und Einstellungen/xyz/Desktop/
ActivePerl-5.8.8.820-MSWin32-x86-274739/perl/bin/"
AddType application/x-httpd-perl .pl
Action application/x-httpd-perl "/perl/perl.exe"

eintragen könnte.

Warum? Nun ja wie teste ich unter verschiedenen Perl Versionen meine
Skripte ohne (a) zwei Versionen ständig pflegen zu müssen oder (b) die
shebang Zeile eines jeden Skriptes ständig anpassen zu müssen?

Leider funktioniert es nicht - und so jetzt meine Hoffnung auf euch
entweder einer Problembehebung oder eines guten Alternativvorschlages.

Danke vorab

Re: Perl und Apache

am 07.05.2007 16:32:11 von unknown

Post removed (X-No-Archive: yes)

Re: Perl und Apache

am 07.05.2007 16:42:23 von Bastie

On 7 Mai, 16:32, Michael Holzt wrote:
> Bastie wrote:
> > Leider funktioniert es nicht - und so jetzt meine Hoffnung auf euch
> > entweder einer Problembehebung oder eines guten Alternativvorschlages.
>
> Du wirst wohl ein kleines Perl-Skript schreiben müssen, welches auswert=
et
> welches Skript der Webserver anfordert und dieses dann lädt und ausfü=
hrt.
> Dann kannst Du in Deiner gezeigten Config eben dieses Skript aufrufen und
> gut ist.
>
Kann mir im Moment nicht genau vorstellen wie/was du meinst.

Re: Perl und Apache

am 07.05.2007 16:54:16 von unknown

Post removed (X-No-Archive: yes)

Re: Perl und Apache

am 07.05.2007 17:16:34 von Bastie

On 7 Mai, 16:54, Michael Holzt wrote:
> Bastie wrote:
> > Kann mir im Moment nicht genau vorstellen wie/was du meinst.
>
> Was Du in Deinem Beispiel machst ist nichts anderes als ein CGI-Skript
> aufrufen. PHP kann damit umgehen und wertet dann die in Umgebungsvariablen
> vom Webserver gelieferten Werte aus um das richtige Skript zu laden und
> auszuführen. Perl hat keinen eingebauten Automatismus dafür, also mu=
ßt
> Du selber ein Skript schreiben welches die nötigen Werte auswertet, das
> Skript lädt und ausführt.
>

Das hilft mir schon mehr. Im Prinzip baue ich mir also eine exe -
nennen wir Sie perl-cgi.exe die alle Umgebungsvariablen und Parameter
ausliest, eine neue Umgebung mit den Umgebungsvariablen aufbaut,
perl.exe mit den Parametern aufruft und die Rückgabe von perl.exe
wieder auf die Kommandozeile ausgibt - korrekt? (klingt fast zu
einfach)

Re: Perl und Apache

am 07.05.2007 17:42:15 von Wolf Behrenhoff

Bastie schrieb:
> Hallo Perlen der Programmierer,
>
> ich suche derzeit eine Möglichkeit Perl-Skripte unter Apache so zu
> testen. Aus gewissen Gründen (möglichst nah am Produktivsystem) ist
> Windows ersteinmal gegeben. Nun aber zu meinem Problemchen:
>
> Warum? Nun ja wie teste ich unter verschiedenen Perl Versionen meine
> Skripte ohne (a) zwei Versionen ständig pflegen zu müssen oder (b) die
> shebang Zeile eines jeden Skriptes ständig anpassen zu müssen?

Suchst du vielleicht folgenden Eintrag für die httpd.conf:
ScriptInterpreterSource Registry-Strict

Dazu in der Registry unter
HKCR\Perl (oder wie .pl auch immer heißt)\shell\ExecCGI\Command\
den Standardwert c:\pfad\zu\perl.exe eintragen.

Wolf

Re: Perl und Apache

am 07.05.2007 21:45:10 von Bastie

On 7 Mai, 17:42, Wolf Behrenhoff
wrote:
> Bastie schrieb:
>
> > Hallo Perlen der Programmierer,
>
> > ich suche derzeit eine Möglichkeit Perl-Skripte unter Apache so zu
> > testen. Aus gewissen Gründen (möglichst nah am Produktivsystem) ist
> > Windows ersteinmal gegeben. Nun aber zu meinem Problemchen:
>
> > Warum? Nun ja wie teste ich unter verschiedenen Perl Versionen meine
> > Skripte ohne (a) zwei Versionen ständig pflegen zu müssen oder (b) =
die
> > shebang Zeile eines jeden Skriptes ständig anpassen zu müssen?
>
> Suchst du vielleicht folgenden Eintrag für die httpd.conf:
> ScriptInterpreterSource Registry-Strict
>
> Dazu in der Registry unter
> HKCR\Perl (oder wie .pl auch immer heißt)\shell\ExecCGI\Command\
> den Standardwert c:\pfad\zu\perl.exe eintragen.
>
> Wolf

Nein genau das will ich nicht, da ich dann wieder nur eine Perl
Version nutzen kann.

Re: Perl und Apache

am 07.05.2007 22:27:42 von Wolf Behrenhoff

Bastie schrieb:
> On 7 Mai, 17:42, Wolf Behrenhoff
> wrote:
>> Bastie schrieb:
>>
>>> Hallo Perlen der Programmierer,
>>> ich suche derzeit eine Möglichkeit Perl-Skripte unter Apache so zu
>>> testen. Aus gewissen Gründen (möglichst nah am Produktivsystem) ist
>>> Windows ersteinmal gegeben. Nun aber zu meinem Problemchen:
>>> Warum? Nun ja wie teste ich unter verschiedenen Perl Versionen meine
>>> Skripte ohne (a) zwei Versionen ständig pflegen zu müssen oder (b) die
>>> shebang Zeile eines jeden Skriptes ständig anpassen zu müssen?
>> Suchst du vielleicht folgenden Eintrag für die httpd.conf:
>> ScriptInterpreterSource Registry-Strict
>>
>> Dazu in der Registry unter
>> HKCR\Perl (oder wie .pl auch immer heißt)\shell\ExecCGI\Command\
>> den Standardwert c:\pfad\zu\perl.exe eintragen.
>>
>> Wolf
>
> Nein genau das will ich nicht, da ich dann wieder nur eine Perl
> Version nutzen kann.

Dann verstehe ich dein Problem vermutlich falsch.
Irgendwo muss doch stehen, welche Perl-Version du nun aufrufen willst.
Wenn es nicht in der #!-Zeile stehen darf, wo sonst? Da du es auch
global für alle Perl-Scripte sein muss, warum dann nicht in der Registry?

Du kannst da ja auch
c:\perl-5.6\bin\perl.exe
oder
c:\perl-5.8\bin\perl.exe
eintragen, je nach Bedarf.

Oder möchtest du ein Script immer mit einem Perl, ein anderes Script
immer mit einem anderen Perl ausführen? Dann musst du das ja aber
irgendwo vermerken.

Wolf

Re: Perl und Apache

am 08.05.2007 10:28:03 von Bastie

On 7 Mai, 22:27, Wolf Behrenhoff
wrote:
> Bastie schrieb:
>
> > On 7 Mai, 17:42, Wolf Behrenhoff
> > wrote:
> >> Bastie schrieb:
>
> >>> Hallo Perlen der Programmierer,
> >>> ich suche derzeit eine Möglichkeit Perl-Skripte unter Apache so zu
> >>> testen. Aus gewissen Gründen (möglichst nah am Produktivsystem) i=
st
> >>> Windows ersteinmal gegeben. Nun aber zu meinem Problemchen:
> >>> Warum? Nun ja wie teste ich unter verschiedenen Perl Versionen meine
> >>> Skripte ohne (a) zwei Versionen ständig pflegen zu müssen oder (b=
) die
> >>> shebang Zeile eines jeden Skriptes ständig anpassen zu müssen?
> >> Suchst du vielleicht folgenden Eintrag für die httpd.conf:
> >> ScriptInterpreterSource Registry-Strict
>
> >> Dazu in der Registry unter
> >> HKCR\Perl (oder wie .pl auch immer heißt)\shell\ExecCGI\Command\
> >> den Standardwert c:\pfad\zu\perl.exe eintragen.
>
> >> Wolf
>
> > Nein genau das will ich nicht, da ich dann wieder nur eine Perl
> > Version nutzen kann.
>
> Dann verstehe ich dein Problem vermutlich falsch.
> Irgendwo muss doch stehen, welche Perl-Version du nun aufrufen willst.
> Wenn es nicht in der #!-Zeile stehen darf, wo sonst? Da du es auch
> global für alle Perl-Scripte sein muss, warum dann nicht in der Registr=
y?
>
> Du kannst da ja auch
> c:\perl-5.6\bin\perl.exe
> oder
> c:\perl-5.8\bin\perl.exe
> eintragen, je nach Bedarf.
>
> Oder möchtest du ein Script immer mit einem Perl, ein anderes Script
> immer mit einem anderen Perl ausführen? Dann musst du das ja aber
> irgendwo vermerken.
>

Ich möchte es gern extern konfigurieren. Wenn du den Apache mit der
Option -f startest kannst du unterschiedliche Konfigurationen
ansteuern. Dies macht sich wunderbar um unterschiedliche PHP
Interpreter anzusteuern. So kann ich zwei Apache Prozesse starten
(Einmal Port 32000, Einmal Port 33000). In einem habe ich
ScriptAlias /php/ "C:/php/php-5.2.1-Win32/"
In dem anderen
ScriptAlias /php/ "C:/php/php-4-Win32/"
Wenn ich mir nun meinen Browser schnappe und meine PHP Seiten aufrufe
kann ich - dank tabbedpane 1 Skript anpassen und die Auswirkungen auf
beide PHP Versionen prüfen.

So etwas würde ich mir auch für Perl wünschen - insbesondere nicht nur
für verschiedene Versionen von Perl ansicht sondern auch zur
Prüfungung von Webanwendungen hinsichtlich ggf. noch freizugebener
Perl-Module für die Produktionsumgebung.

Ich hoffe ich habe es verständlich ausgedrückt...