Vhost, Alias ? bei 2 x Perl auf dem Rechner

Alles, was den Apache betrifft, kann hier besprochen werden.

Vhost, Alias ? bei 2 x Perl auf dem Rechner

Postby Henry007 » 29. January 2022 09:53

Hallo,

ich hatte bisher xampp-Perl auf meinem Win 10, musste jetzt aber Module nachladen und dass funktioniert nicht,
weil das entsprechende dmake fehlt und ich es nicht nachladen kann.
Also habe ich ein 2. Perl Strawberry portable geladen und will damit meine neuen Sachen machen.
Das alte will ich lassen wie es ist, funktioniert ja mit vielen Perlprogrammen.

Ich habe also 2 x Perl auf meinem Rechner und beide sollen beim Browser mit localhost funktionieren.

Bisheriges Perl:
Perl unter C:/xampp/ (das soll erhalten bleiben)
Perlprogramme z.B. unter C:/xampp/cgi-bin/tellme.pl
Pfadangabe im Programm #!"C:\xampp\perl\bin\perl.exe"
Aufgerufen im Browser mit localhost/cgi-bin/tellme.pl

Mit Strawberry portable:
Perl unter C:/strawberry/
Perlprogramme z.B. unter C:/perlprogs/printenv.pl
Pfadangaben im Programm #!perl
Aufgerufen im Browser mit localhost/tellme.pl

Mit C:\xampp\apache\conf\extra\http-vhosts.conf habe ich bereits probiert,
da geht entweder das eine oder das andere Perl aber nicht beide.
Hat jemand eine Tip, wie ich beide Perls zum laufen bekommen.

Henry
Henry007
 
Posts: 9
Joined: 29. January 2022 09:33
XAMPP version: 3.2.2
Operating System: window 10

Re: Vhost, Alias ? bei 2 x Perl auf dem Rechner

Postby Nobbie » 29. January 2022 12:56

Henry007 wrote:Mit C:\xampp\apache\conf\extra\http-vhosts.conf habe ich bereits probiert,


Was genau hast Du probiert? Im Prinzip musst Du zwei verschiedene VirtualHosts eingeben (d.h. es geht nur einer von beiden "localhost", der andere muss anders heißen, das ist nicht vermeidbar), einmal das eine Perl als CGI angeben und einmal das andere. Wenn Du sagst, dass "immer nur eines geht", dann hast Du im Ansatz wahrscheinlich schon die richtige Lösung, aber das kann ich nur beurteilen, wenn ich weiß, was Du gemacht hast.
Nobbie
 
Posts: 13179
Joined: 09. March 2008 13:04

Re: Vhost, Alias ? bei 2 x Perl auf dem Rechner

Postby Nobbie » 29. January 2022 14:13

Ich habe mal genauer nachgeschaut, es scheint kein Pendant zu php-cgi zu geben (also perl-cgi), das wird bei PHP ausgeliefert um mit Hilfe der Action-Klausel in der Apache Konfiguration den Pfad für die PHP Version festzulegen. Im Moment benutzt Du die sog. Shebang Zeile (das ist die erste Zeile im Perl Script). Da ist natürlich klar, dass da nur eine Version angegeben werden kann, egal was in Apache konfiguriert wird. Ich habe verschiedene Lösungsansätze, die Du ausprobieren kannst:

1) Am einfachsten wäre natürlich doppelte Datenhaltung, jedes Script gibt es beispielsweise als tellme.pl1 und als tellme.pl2. Du musst dann .pl1 und .pl2 auch als CGI Typen festlegen, aber in einer Datei steht #!"C:\xampp\perl\bin\perl.exe" und in der anderen eben #!"C:\Strawberry\bin\perl.exe".

2) Statt den ganzen Pfadnamen im Shebang anzugeben, könnte man versuchen, nur perl.exe anzugeben und die Suche dem Windows OS (via PATH) zu überlassen. Mit der SetEnv Anweisung könnte man in zwei verschiedenen VirtualHosts verschiedene PATH Angaben ausprobieren:

Code: Select all
<VirtualHost *:80>
ServerName localhost
SetEnv PATH C:/xampp/perl/bin
DocumentRoot C:/xampp/htdocs
...


bzw.

Code: Select all
<VirtualHost *:80>
ServerName strawberry
SetEnv PATH C:/strawberry/bin
DocumentRoot C:/xampp/htdocs
...


Und in tellme.pl steht dann in der ersten Zeile nur:

Code: Select all
#!perl.exe


Habe ich nicht getestet, müßtest Du ausprobieren.

3) Wenn man in der Shebang Zeile auch direkt Umgebungsvariablen ansprechen kann (was ich bezweifle), dann ging vielleicht auch so etwas:

Code: Select all
<VirtualHost *:80>
ServerName localhost
SetEnv PERL=C:/xampp/bin/perl/perl.exe


und dann als Shebang:

Code: Select all
#!"$PERL/perl.exe"


Soweit ich weiß, geht da aber leider nicht.

4) Weil 3. wahrscheinlich nicht geht, könnte man einen Workaraund versuchen, ich kann aber leider nur Linux Syntax anbieten. Man müßte schauen, welche Windows Tools es gibt, um das nachzubilden. Der Trick besteht darin, nicht Perl aufzurufen, sondern /bin/sh (eine Shell, bei Windows wäre das cmd.exe - müßte man ggf. ausprobieren) und diese Shell macht dann einen exec auf das gewünschte Programm (via Environmentvariable, die in diesem Kontext ausgewertet wird)

#!/bin/sh
exec $PERL/perl $@
... und hier kommt dann der eigentlich Inhalt von tellme.pl

Oder (vielleicht noch sauberer) man schreibt ein kleines Programm myperl.sh, gibt dieses Programm in der Shebang Zeile an und schreibt in myperl.sh nur diese Zeile:

exec $PERL/perl $@

Habe ich alles nicht ausprobiert, vor allem nicht unter Windows (ich habe kein Windows). Am einfachsten ist es sicherlich, die doppelten Scriptnamen zu wählen. Ausprobieren würde ich in jedem Fall auch die Variante, in der Apache Konfiguration mit der Action Klausel den Perl Interpreter anzugeben. Vielleicht klappt es ja.

P.S.: Nur perl.exe als Shebang Zeile angeben geht leider auch nicht, ich habe gerade ein wenig getestet, die Shebang Zeile MUSS eine vollständige Pfadangabe haben.
Nobbie
 
Posts: 13179
Joined: 09. March 2008 13:04

Re: Vhost, Alias ? bei 2 x Perl auf dem Rechner

Postby Henry007 » 29. January 2022 16:19

Ja, prima.
Da habe ich eine Menge auszuprobieren.
melde mich wieder
Henry
Henry007
 
Posts: 9
Joined: 29. January 2022 09:33
XAMPP version: 3.2.2
Operating System: window 10

Re: Vhost, Alias ? bei 2 x Perl auf dem Rechner

Postby Nobbie » 29. January 2022 20:35

Bevor Du Dich darein stürzt - wozu braucht man so etwas überhaupt? Du willst ja nicht Perl Interpreter testen, sondern Perl Scripts programmieren. Was spricht dagegen, nur den Strawberry Perl zu benutzen? Wozu den Xampp Perl, wenn der unvollständig ist resp. nicht nachrüstbar wie gewünscht??
Nobbie
 
Posts: 13179
Joined: 09. March 2008 13:04

Re: Vhost, Alias ? bei 2 x Perl auf dem Rechner

Postby Henry007 » 30. January 2022 10:13

Hallo Nobbi,

weil ich soviele Perl-Programme über xampp/perl habe. Bin ich sicher dass die alle auch auf strawberry laufen ?

Henry
Henry007
 
Posts: 9
Joined: 29. January 2022 09:33
XAMPP version: 3.2.2
Operating System: window 10

Re: Vhost, Alias ? bei 2 x Perl auf dem Rechner

Postby Henry007 » 30. January 2022 10:43

jetzt habe ich einiges rumprobiert. Wenn ich folgendes in C:\xampp\apache\conf\extra\httpd-vhosts.conf schreibe,
geht das xampp/perl mit localhost wie immer, aber wenn ich strawhost im Browser eingebe, kommen nur die Vorschläge von Google.
Erwartet hätte ich ein Dir-listing. Habe ich in den conf-Angaben irgendwas falsch angegeben ?
Danke Henry

<VirtualHost *:80>
ServerName localhost
SetEnv PATH C:/xampp/perl/bin
DocumentRoot C:/xampp/htdocs
ErrorLog "C:/xampp/cgi-bin/logs/error.log"
CustomLog "C:/xampp/cgi-bin/logs/access.log" common
<Directory "C:/xampp/neoplast/">
Options Indexes FollowSymLinks Includes ExecCGI
AllowOverride All
Require all granted
<FilesMatch "\.(pl|cgi)$">
Options +FollowSymLinks +execCGI
SetHandler cgi-script
</FilesMatch>
</Directory>
</VirtualHost>

<VirtualHost *:80>
ServerName strawhost
SetEnv PATH C:/strawberry/perl/bin
DocumentRoot C:/perlprogs/htdocs
ErrorLog "C:/perlprogs/logs/error.log"
CustomLog "C:/perlprogs/logs/access.log" common
<Directory "C:/perlprogs/neoplast">
Options Indexes FollowSymLinks Includes ExecCGI
AllowOverride All
Require all granted
<FilesMatch "\.(pl|cgi)$">
Options +FollowSymLinks +execCGI
SetHandler cgi-script
</FilesMatch>
</Directory>
</VirtualHost>
Henry007
 
Posts: 9
Joined: 29. January 2022 09:33
XAMPP version: 3.2.2
Operating System: window 10

Re: Vhost, Alias ? bei 2 x Perl auf dem Rechner

Postby Nobbie » 30. January 2022 11:55

Henry007 wrote:Hallo Nobbi,

weil ich soviele Perl-Programme über xampp/perl habe. Bin ich sicher dass die alle auch auf strawberry laufen ?

Henry


Selbstverständlich, das müssen sie. Alle Programme der Welt werden irgendwo entwickelt und laufen nachher bei den Anwendern auf den unterschiedlichsten Infrastrukturen. Insbesondere ist Strawberry eine viel mächtigere Installation als das Perl von Xampp, da fehlt allenfalls anders herum eher bei Xampp Perl ein Modul.

Was willst Du denn machen, wenn Du die Programme bei einem Provider installierst, das Xampp Perl mitbringen?

Der ServerName des VirtualHosts muss natürlich auch in der Windows hosts Datei angegeben werden, ich vermute, das hast Du nicht getan. Der Name muss ja mit irgendeiner IP verknüpft sein.
Nobbie
 
Posts: 13179
Joined: 09. March 2008 13:04

Re: Vhost, Alias ? bei 2 x Perl auf dem Rechner

Postby Henry007 » 30. January 2022 12:18

Hallo Nobbi,

die Programme werden immer nur hier auf diesem Rechner laufen.

>Der ServerName des VirtualHosts muss natürlich auch in der Windows hosts Datei angegeben werden,
>ich vermute, das hast Du nicht getan. Der Name muss ja mit irgendeiner IP verknüpft sein.

Ooooops, du hast natürlich Recht. Trage ich da jetzt zusätzlich # "127.0.0.1 strawhost" ein, ist ja dieselbe IP ?

# localhost name resolution is handled within DNS itself.
# 127.0.0.1 localhost
# 127.0.0.1 strawhost
# ::1 localhost
Henry007
 
Posts: 9
Joined: 29. January 2022 09:33
XAMPP version: 3.2.2
Operating System: window 10

Re: Vhost, Alias ? bei 2 x Perl auf dem Rechner

Postby Henry007 » 30. January 2022 12:27

allerdings lässt mich Windows die Datei nicht ändern
Henry007
 
Posts: 9
Joined: 29. January 2022 09:33
XAMPP version: 3.2.2
Operating System: window 10

Re: Vhost, Alias ? bei 2 x Perl auf dem Rechner

Postby Altrea » 30. January 2022 14:49

du musst deinen Texteditor mit erhöhten Administratorrechten starten
We don't provide any support via personal channels like PM, email, Skype, TeamViewer!

It's like porn for programmers 8)
User avatar
Altrea
AF Moderator
 
Posts: 11935
Joined: 17. August 2009 13:05
XAMPP version: several
Operating System: Windows 11 Pro x64

Re: Vhost, Alias ? bei 2 x Perl auf dem Rechner

Postby Henry007 » 30. January 2022 17:47

Danke, das hat jetzt geklappt. hosts Datei jetzt editiert.

Bei Eingabe im Browser von "localhost", aber wenn ich "strawhost" im Browser eingebe, kommen nur die Vorschläge von Google.
Erwartet hätte ich ein Dir-listing.

Henry
Henry007
 
Posts: 9
Joined: 29. January 2022 09:33
XAMPP version: 3.2.2
Operating System: window 10

Re: Vhost, Alias ? bei 2 x Perl auf dem Rechner

Postby Altrea » 30. January 2022 22:03

Das war zu erwarten.

Hast du es mal mit der vollständigen URL inklusive Protokoll versucht? => http://strawhost/
Ansonsten versuch mal in der Eingabeaufforderung strawhost anzupingen
Code: Select all
ping strawhost
We don't provide any support via personal channels like PM, email, Skype, TeamViewer!

It's like porn for programmers 8)
User avatar
Altrea
AF Moderator
 
Posts: 11935
Joined: 17. August 2009 13:05
XAMPP version: several
Operating System: Windows 11 Pro x64

Re: Vhost, Alias ? bei 2 x Perl auf dem Rechner

Postby Henry007 » 31. January 2022 09:45

Hurra, das pingen hat funktioniert.
Bei http://strawhost/ kommt aber ein Fehler:
--------------------
Zugriff verweigert!

Der Zugriff auf das angeforderte Verzeichnis ist nicht möglich. Entweder ist kein Index-Dokument vorhanden oder das Verzeichnis ist zugriffsgeschützt.

Sofern Sie dies für eine Fehlfunktion des Servers halten, informieren Sie bitte den Webmaster hierüber.
Error 403
strawhost
Apache/2.4.17 (Win32) OpenSSL/1.0.2d PHP/5.6.15
-------------------
Wo wird denn die index.htm oder was immer erwartet ? Und welches Verzeichnis ist schreibgeschützt ?
Ich komm irgendwie nicht weiter. :cry:
Henry
Henry007
 
Posts: 9
Joined: 29. January 2022 09:33
XAMPP version: 3.2.2
Operating System: window 10

Re: Vhost, Alias ? bei 2 x Perl auf dem Rechner

Postby Nobbie » 31. January 2022 10:28

Du hast als DocumentRoot c:/perlprogs/htdocs angegeben, aber im Directory Block für die Rechte und Options das Verzeichnis c:/perlprogs/neoplast. Das ist natürlich Kappes.

P.S.: Das ist in beiden VirtualHosts falsch, aber für den xampp/htdocs Ordner gibt es an anderer Stelle wahrscheinlich einen entsprechenden systemweiten Eintrag, deswegen fällt der Fehler da nicht auf.

P.P.S.: Wieso hast Du jetzt verschiedene DocumentRoots angegeben und dazu auch noch SetEnv PATH drin? Was ist der Sinn davon, wozu setzt Du den PATH, wenn Du auch noch verschiedene Dateien hast für localhost und strawhost?
Nobbie
 
Posts: 13179
Joined: 09. March 2008 13:04

Next

Return to Apache

Who is online

Users browsing this forum: No registered users and 210 guests