Apache Virtual Hosts

Irgendwelche Probleme mit XAMPP für Windows? Dann ist hier genau der richtige Ort um nachzufragen.

Apache Virtual Hosts

Postby Kai-Uwe » 19. January 2009 11:16

Tach erstmal :-)

Nachdem ich nun fast 3 Nächte gemacht und getan habe ohne so richtig weiter zu kommen hier mein "Hilferuf"...

Mein Webserver hat sich ins Nirwana begeben! Hardware = Schrott :evil:

Also habe ich mir aus alter Hardware einen neuen aufgebaut, XP Pro und Co. wie gehabt aufgesetzt.

Ich will den alten Apache nicht mehr nutzen (8 Jahre alt) und habe den aktuellen Xampp (1.7) installiert. Soweit (Lokal) funzt auch alles. :)

Nun kommen die Probleme:

Der Apache hört ja standartmäßig auf Port 80. Klappt auch. :)

Nun möchte ich aber von aussen auf dort abgelegte Webinhalte zugreifen. Die liegen zum einen nicht im standardmäßigen DocumentRoot (sondern auf D:\websites\.... und sind zudem nicht über Port 80 sondern 82 zu erreichen. :shock:

Ich kann den Apache zwar so "verbiegen" das er auf Port 82 hört (Auf Routerseite ist alles entsprechend eingestellt) aber ich bekomme es nicht hin das er den selbsterstellten Webinhalt anzeigt. Auf das Standardmäßige DocumentRoot komme ich immer (:82 in die URL mit einfügen).
Weder beim lokalen noch beim Zugriff über das Web jedoch auf meine eigenen Inhalte. Beim Zugriff über das Web gehe ich über einen DYNS-Server. Der leitet die Anfrage dann weiter an meinen Webserver. Lokale Anfragen sollen auf Port 80 gehen und alles was von aussen kommt auf Port 82 oder weitere. Je nach VirtualHost. Das muss doch gehen? Von aussen auf Port 80 soll nicht gehen. Warum auch :-)Zumindest ging das mal alles so! Ist aber eben schon Jahre her und so einen Webserver setzt ich nicht alle Tage auf...

Da ich die httpd.conf und die httpd-vhost.conf hier nicht so für jedermann posten möchte um den Traffic nicht unnötig zu erhöhen wäre es nett wenn mir jemand per Mail/Telefon oder, wenn es auch so schon direkt eine Idee gibt, hier helfen kann. Wenn es sein soll Poste ich die beiden Dateien aber auch gerne. Ist nichts geheimes :P .

Hier mal der Teil der httpd-vhosts.conf den ich angefügt habe. Da vermute ich den "Hauptfehler". Der Erste Block ist für die nur lokal zu erreichendne Seiten, der Zweite für ein CGI-Gästebuch (Perlsoft) welches von ausserhalb erreichbar sein soll.

Ist in den .conf-Dateien eigentlich Gross- Kleinschreibung bei den Pfadangaben wichtig? :?: :?:

-----------------------------------------------------------Schnipp---------------------------------------------------
<VirtualHost *:80>
ServerAdmin jaap@jaap.de
DocumentRoot C:/Programme/xampp/htdocs
ServerName meganet
</VirtualHost>


<VirtualHost *:82>
ServerAdmin kai-uwe@jaap.de
DocumentRoot d:/Websites/quad-4-fun
ServerName quad-4-fun
ServerAlias quad-4-fun.dyns.cx
ScriptAlias /cgi-bin/ d:/Websites/quad-4-fun/cgi-bin/
</VirtualHost>


---------------------------------------------------Schnapp------------------------------------------------------------

Bei Bedarf rufe ich logischerweise auch an. Skype gibt es aber auch :-)

Ach ja warum das Ganze: In meinem "Heimnetz" wird Port 80 anderweitig benötigt bzw. ich will auf "interne" Documente zugreifen. Von extern sollen 1-3 Websites erreichbar sein welche hier auf meinem Server liegen. Da da ja über dynamische IP's läuft nehm ich den dyns.cx zwecks "weiterleitung". Hier kommen dann eben die Anfragen an welche je nach Port in die unterschiedlichen DocumentRoots gehen sollen.

Grüsse Kai-Uwe
Kai-Uwe
 
Posts: 6
Joined: 19. January 2009 10:57

Re: Apache Virtual Hosts

Postby Wiedmann » 19. January 2009 11:44

Für das "DocumentRoot d:/Websites/quad-4-fun" fehlt noch ein entsprechender Directory-Block innerhalb vom "<VirtualHost *:82>" (ein Beispiel findest du in der "httpd.conf" für das default "DocumentRoot").

Vor der Zeile "<VirtualHost *:82>" musst du noch ein "NameVirtualHost *:82" und ein "Listen 82" einfügen".

Vor der Zeile "<VirtualHost *:80>" musst du noch ein "NameVirtualHost *:80".

(In der "httpd.conf" musst du nichts ändern.)
Wiedmann
AF Moderator
 
Posts: 17102
Joined: 01. February 2004 12:38
Location: Stuttgart / Germany

Re: Apache Virtual Hosts

Postby Kai-Uwe » 19. January 2009 15:10

Fast... :lol:

Ich kann nun Local wie gewünscht zugreifen. Lande also auf der Xampp default Seite.

Wenn ich von extern zugreife (quadbook10.dyns.cx:82) dann bekomme ich jetzt einen Error 403 vom Apache zurück. Eine Testweise index.htm liegt aber im im Virtualhost-Abschnitt angegebenen Verzeichnis.

Der Virtualhost-Abschnitt sieht nun so aus:

--------------------------------------------Schnipp----------------------------------------------------
NameVirtualHost *:80
<VirtualHost *:80>
ServerAdmin jaap@jaap.de
DocumentRoot C:/Programme/xampp/htdocs
ServerName meganet
</VirtualHost>

NameVirtualHost *:82
Listen 82
<VirtualHost *:82>
ServerAdmin kai-uwe@jaap.de
DocumentRoot d:/Websites/quad-4-fun
ServerName quad-4-fun
ServerAlias quadbook10.dyns.cx
ScriptAlias /cgi-bin/ d:/Websites/quad-4-fun/cgi-bin/
<Directory />
Options FollowSymLinks
AllowOverride None
Order deny,allow
Deny from all
</Directory>
</VirtualHost>
--------------------------------------------------------------------Schnapp-------------------------------------------------------

Gerade ist mir was aufgefallen!!! Ich habe jetzt mal "Deny from all" in "Allow from all" geändert. Nun geht es (scheinbar?). Ist das dann so richtig oder habe ich da irgendwelche "Scheunentore" aufgerissen?

Weiterhin scheint es noch Probleme mit den CGI zu geben. Ich bekomme die Fehlermeldung 500 zurück
-------------------------------------------------------Schnipp-----------------------------------------------------------------------
Die Anfrage kann nicht beantwortet werden, da im Server ein interner Fehler aufgetreten ist.
Fehlermeldung:
couldn't create child process: 720003: admincenter.cgi

----------------------------------------------------------Schnapp-------------------------------------------------------------------

Der Script-Alias ist ja gesetzt (ScriptAlias /cgi-bin/ d:/Websites/quad-4-fun/cgi-bin/). Unter cgi-bin gibt es ein Unterverzeichnis namens perlsoft in dem dann das Script liegt. Weitere eventuelle cgi's würden dann später ja jeweils in ihren Unterverzeichnissen liegen. Die URL zum Gästebuch ist:

http://quadbook10.dyns.cx:82/cgi-bin/perlsoft/main.cgi Kannst/könnt ja mal gerne Testen....

Ups..und nun bekomme ich einen 404 zurück :?: :?: Den 500 kann ich derzeit nicht mehr replizieren... :?: :?:

Auch das hat schon mal so funktioniert :cry:

Da ich mit Windoof arbeite kann ich ja keine CHMOD-Befehle verwenden. Bisher ging es immer indem ich in den Datei-/Verzeichniseigenschaften der CGI's unter "Sicherheit" für "Jeder" den Vollzugriff aktiviert habe. Das ist hier auch der Fall. Da glaube ich eigentlich nicht an einen Zusammenhang.

Grüsse Kai-Uwe
Kai-Uwe
 
Posts: 6
Joined: 19. January 2009 10:57

Re: Apache Virtual Hosts

Postby Wiedmann » 19. January 2009 15:16

oder habe ich da irgendwelche "Scheunentore" aufgerissen?

Yup, das Verzeichnis im Directory sollte natürlich nicht "/" sein, sondern das vom DocumentRoot. (also Beispiel hättest du aus der "httpd.conf" schon den DirectoryBlock vom DocumentRoot nehmen sollen, und nicht den Block für "/".)

Der Script-Alias ist ja gesetzt ... und nun bekomme ich einen 404 zurück

Auch hier fehlt dir für das Verzeichnis ein Directory-Block (siehe "httpd.conf").


Da ich mit Windoof arbeite kann ich ja keine CHMOD-Befehle verwenden.

Keine Ahnung. Hab selbst auch nur Windows. Bei deinem OS kenne ich mich nicht aus.
Wiedmann
AF Moderator
 
Posts: 17102
Joined: 01. February 2004 12:38
Location: Stuttgart / Germany

Re: Apache Virtual Hosts

Postby Kai-Uwe » 19. January 2009 15:41

Oh Mann! Danke für die schnelle Hilfe!!!

Ich habe das im VirtualHostBlock entsprechend geändert:
--------------------------------------------Schnipp------------------------------------
NameVirtualHost *:82
Listen 82
<VirtualHost *:82>
ServerAdmin kai-uwe@jaap.de
DocumentRoot d:/Websites/quad-4-fun
ServerName quad-4-fun
ServerAlias quadbook10.dyns.cx
<Directory d:/websites/quad-4-fun>
Options FollowSymLinks
AllowOverride None
Order deny,allow
Allow from all
</Directory>
ScriptAlias /cgi-bin/ d:/websites/quad-4-fun/cgi-bin
<Directory "d:/websites/quad-4-fun/cgi-bin">
AllowOverride None
Options None
Order allow,deny
Allow from all
</Directory>
</VirtualHost>
------------------------------------------Schnapp------------------------------------------------
Leider ohne Erfolg Immer noch der 404 "Objekt nicht gefunden"

Ich habe den Xampp in C:\Programme\xampp installiert. Alles via Installer. Damit sind alle anderen Unterverzeichnisse vorgegeben.
Könnte es evtl. an der "shebang-Line" liegen? Die ist in den Dateien des cgi wie vorher auch default geblieben also "#!/usr/bin/perl" ?

Grüsse Kai-Uwe
Kai-Uwe
 
Posts: 6
Joined: 19. January 2009 10:57

Re: Apache Virtual Hosts

Postby Kai-Uwe » 19. January 2009 15:57

Einen Fehler habe ich gefunden im Host-Abschnitt hatte ich ein / vergessen und dafür 2 " zuviel.

Nun bekomme ich nicht mehr den 404 sondern eben immer brav den 500er Fehler zurück. Dauerhaft replizierbar :wink:

Fehlermeldung:
couldn't create child process: 720003: admincenter.cgi


Mal ein Auszug aus der error-log:

[Mon Jan 19 15:55:58 2009] [error] [client 82.83.218.236] (OS 3)Das System kann den angegebenen Pfad nicht finden. : couldn't create child process: 720003: main.cgi
[Mon Jan 19 15:55:58 2009] [error] [client 82.83.218.236] (OS 3)Das System kann den angegebenen Pfad nicht finden. : couldn't spawn child process: D:/websites/quad-4-fun/cgi-bin/perlsoft/main.cgi


Grüsse Kai-Uwe
Kai-Uwe
 
Posts: 6
Joined: 19. January 2009 10:57

Re: Apache Virtual Hosts

Postby Nobbie » 19. January 2009 16:33

Da ist wahrscheinlich die sog. "Shebang"-Zeile im *.cgi Script falsch. Das ist die erste Zeile im Script und die sieht in etwa so aus:

#!c:/perl/bin/perl.exe


oder ähnlich. Wichtig ist, dass dort der vollständige richtige Pfad zum Perl-Interpreter (oder welcher Interpreter auch immer benötigt wird) steht.

Was ich bei all dem noch immer nicht verstanden habe: wozu brauchst Du den Port 82? Apache hört doch auch bei Dir ohnehin auf Port 80, da verstehe ich nicht, wozu Du auch noch den Port 82 brauchst?
Nobbie
 
Posts: 13183
Joined: 09. March 2008 13:04

Re: Apache Virtual Hosts

Postby Kai-Uwe » 19. January 2009 18:41

Da ich hier mehrer Rechner am laufen habe wird der Port 80 für die Anderen Rechner benötigt. U.a. kommunzieren die Browser ja darüber. Um den Webserver nun von aussen gezielt anspreche nzu können benötige einen eigen Port. 81 wird ja auch schon von Xampp belegt also 82. Das klappt ja auch alles soweit.

Das mit der Shebang habe ich probiert bringt aber leider nichts.

Ich versteh das doch richtig: In der Basisinstallation kann Xampp doch cgi? Oder muss ich das Perl-Addon installieren? .pl Dateien habe hier keine in Verwendung.

Die perl.exe liegt hier in "C:\Programme\xampp\perl\bin" in der Shebang habe ich nun "C:\Programme\xampp\perl\bin" oder auch "C:/Programme/xampp/perl/bin" und "C:\Programme\xampp\perl\bin\perl.exe " unf "C:/Programme/xampp/perl/bin/perl.exe" probiert. Jeweils ohne Erfolg.

Auf dem "alten" Server hatte ich damals Active Perl installiert. War kein Xampp sondern ein "reiner" Apache 1.3.27 und Active-Perl 5.8.4.810.

Grüsse Kai-Uwe
Kai-Uwe
 
Posts: 6
Joined: 19. January 2009 10:57

Re: Apache Virtual Hosts

Postby Kai-Uwe » 19. January 2009 19:35

Tja....

Nun klappt alles!

Ich habe mich vom vorhandenen Verzeichnis /Perl mit der perl.exe vollständig verwirren lassen und war darum davon ausgegangen das der Xampp von Haus aus cgi kann. Iss aber nicht so! Nun weiss ich es!

Nach der installation des Perl-Addons lief sofort alles ohne jegliche Probleme!

Danke allen die mir hier weitergeholfen haben!

Grüsse Kai-Uwe
Kai-Uwe
 
Posts: 6
Joined: 19. January 2009 10:57

Re: Apache Virtual Hosts

Postby Wiedmann » 19. January 2009 19:43

und war darum davon ausgegangen das der Xampp von Haus aus cgi kann.

Er kann auch von Haus aus CGI.

Nur hat halt CGI erstmal nichts mit Perl zu tun, sondern ist eine Schnittstelle um eben externe (CGI-) Programme/Scripts auszuführen.

Nach der installation des Perl-Addons lief sofort alles ohne jegliche Probleme!

Wenn du über CGI eben Perl-Scripte ausführen willst, muss dazu natürlich auch ein Perl installiert sein ;-)

Ich habe mich vom vorhandenen Verzeichnis /Perl mit der perl.exe vollständig verwirren lassen

Das ist tatsächlich nur ein minimales statisches Perl, was nur die Perl-Grundfunktionen beherrscht. Damit kommt aber so gut wie kein Perl-Script aus.

Bei deinem Error 500 hättest du dann auch im error.log vom Apache nachlesen können, dass diesem Script ein paar Perl-Module fehlen.
Wiedmann
AF Moderator
 
Posts: 17102
Joined: 01. February 2004 12:38
Location: Stuttgart / Germany


Return to XAMPP für Windows

Who is online

Users browsing this forum: No registered users and 17 guests