Einrichtung virtueller Server unter Suse 9.2 mit Apache2?
Hallo Leute,
eine Frage an die Apache-kundigen in der Liste:
ich versuche auf einem Suse 9.2 Server mit Apache 2.0.52 namensbasierte
virtuelle Server einzurichten. Apache reagiert auf die URL, nimmt jedoch
nicht die in der <virtualserver> festgelegte DocumentRoot an.
Unter Suse sind die Konfigurationsdateien in dermaßen viele Einzelsplitter
zerlegt, dass mir nur noch schwindelig geworden ist.
Wo genau muss wie die Festlegung erfolgen, auf welcher IP der Apache die
virtuellen Server erwartet und wo werden die Definitionen der virtuellen
Server abgelegt?
So langsam überlege ich mir, ob es nicht sinnvoller ist, einmal rm -rf
/etc/apache2/* laufen zu lassen und eine zentrale httpd.conf anzulegen.
Logmeldungen beim Start:
Starting httpd2 (prefork) [Mon Jun 26 12:00:03 2006] [warn] VirtualHost
intranet.example.com:80 overlaps with VirtualHost
logserver.example.com:80, the first has precedence, perhaps you need a
NameVirtualHost directive
[Mon Jun 26 12:00:03 2006] [error] VirtualHost spamkill.example.com:0 --
mixing * ports and non-* ports with a NameVirtualHost address is not
supported, proceeding with undefined results
[Mon Jun 26 12:00:03 2006] [warn] VirtualHost logserver.example.com:80
overlaps with VirtualHost intranet.example.com:80, the first has
precedence, perhaps you need a NameVirtualHost directive
[Mon Jun 26 12:00:03 2006] [warn] VirtualHost intranet.example.com:80
overlaps with VirtualHost logserver.example.com:80, the first has
precedence, perhaps you need a NameVirtualHost directive
[Mon Jun 26 12:00:03 2006] [error] VirtualHost spamkill.example.com:0 --
mixing * ports and non-* ports with a NameVirtualHost address is not
supported, proceeding with undefined results
[Mon Jun 26 12:00:03 2006] [warn] NameVirtualHost 10.20.0.205:80 has no
VirtualHosts
Hier die bisherige Konfiguration:
cat /etc/apache2/vhosts.d/*.conf:
spamkill:~ # cat /etc/apache2/vhosts.d/*.conf
NameVirtualHost 10.20.0.205:80
<VirtualHost spamkill.example.com >
ServerName spamkill.example.com
DocumentRoot /srv/www/htdocs
ServerAdmin webmaster@example.com
ErrorLog /var/log/apache2/global-error.log
CustomLog /var/log/apache2/spamkill.example.com-access_log common
Am Montag, 26. Juni 2006 12:07 schrieb Sandy Drobic:
ich versuche auf einem Suse 9.2 Server mit Apache 2.0.52 namensbasierte virtuelle Server einzurichten. Apache reagiert auf die URL, nimmt jedoch nicht die in der <virtualserver> festgelegte DocumentRoot an.
Hm, meine aktuell betreuten Rechner gehen zwar nur bis SUSE 9.3 zurück, aber ich glaube nicht, dass sich zwischen 9.2 und 9.3 groß was geändert hat. Schau mal in die /etc/apache2/listen.conf, da sollte wohl das NameVirtualHost 10.20.0.205:80 rein. -- Machs gut | http://www.iivs.de/schwinde/buerger/tremmel/ | http://packman.links2linux.de/ Manfred | http://www.knightsoft-net.de -- Um die Liste abzubestellen, schicken Sie eine Mail an: suse-linux-unsubscribe@suse.com Um eine Liste aller verfuegbaren Kommandos zu bekommen, schicken Sie eine Mail an: suse-linux-help@suse.com
Hallo Sandy, laß' einfach mal die Portangabe (:80) bei allen Einträgen weg und probier es dann nochmal... Gruß Am Montag, 26. Juni 2006 12:07 schrieb Sandy Drobic: ...
[Mon Jun 26 12:00:03 2006] [error] VirtualHost spamkill.example.com:0 -- mixing * ports and non-* ports with a NameVirtualHost address is not ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ supported, proceeding with undefined results ... NameVirtualHost 10.20.0.205:80 -----------------------------^^^ ... <VirtualHost intranet.example.com:80> -----------------------------------^^^ usw.
-- - Alexandra Achtung: Lesen gefährdet die Dummheit! -- Um die Liste abzubestellen, schicken Sie eine Mail an: suse-linux-unsubscribe@suse.com Um eine Liste aller verfuegbaren Kommandos zu bekommen, schicken Sie eine Mail an: suse-linux-help@suse.com
Sandy Drobic schrieb:
Hallo Leute,
eine Frage an die Apache-kundigen in der Liste:
ich versuche auf einem Suse 9.2 Server mit Apache 2.0.52 namensbasierte virtuelle Server einzurichten. Apache reagiert auf die URL, nimmt jedoch nicht die in der <virtualserver> festgelegte DocumentRoot an.
Bekanntes Problem, Lösung siehe unten.
Unter Suse sind die Konfigurationsdateien in dermaßen viele Einzelsplitter zerlegt, dass mir nur noch schwindelig geworden ist.
Geht mir genauso, daher habe ich meine Einstellungen in eine eigene Datei (httpd.conf) eingetragen, die alles kompliziertere einbindet. Yast ist dafür geeignet, Einsteigern einen einfachen Apache anzulegen. Aber für alles kompliziertere ist Yast nicht mehr zu gebrauchen.
Wie richtet man unter Suse einen namebased virtual Host ein?!?
Zuerst muss apache auf den Schnittstellen hören:
Listen 80
Listen 8080
Listen 591
Ich habe in meiner httpd.conf für jeden Vhost einen Eintrag:
NameVirtualHost 192.168.0.10:80
NameVirtualHost 192.168.0.10:8080
NameVirtualHost 192.168.0.10:591
und dann für jeden vhost einen Eintrag wie:
Martin Ereth wrote on Mon, 26 Jun 2006 13:55:34 +0200:
[HowTo in "Schnipsel-Form"]
Wie genau das mit den Aliasen funktioniert, weiß ich nicht. Ich kann zwar welche definieren, aber wenn ich sie im Browser eingebe, findet er nichts. Wenn du es herausfindest, kannst du es mir ja schreiben.
Hier mal ein entsprechender Eintrag aus meiner default-server.conf,
für die V-Hosts sollte es analog (innerhalb der V-Host-Konfig) gehen:
(die Aliase werden also für jeden vhost gesondert konfiguriert.) Bei
mir funktioniert das einwandfrei. Ich glaube auch mich erinnern zu
können, dass der Apache die jeweils am Anfang und Ende stehenden "/"
der Pfad-Angaben sehr ernst nimmt.
-- schnipp --
Alias /icons/ "/usr/share/apache2/icons/"
Oliver Meißner-Knippschild wrote:
Martin Ereth wrote on Mon, 26 Jun 2006 13:55:34 +0200:
[HowTo in "Schnipsel-Form"]
Wie genau das mit den Aliasen funktioniert, weiß ich nicht. Ich kann zwar welche definieren, aber wenn ich sie im Browser eingebe, findet er nichts. Wenn du es herausfindest, kannst du es mir ja schreiben.
Hier mal ein entsprechender Eintrag aus meiner default-server.conf, für die V-Hosts sollte es analog (innerhalb der V-Host-Konfig) gehen: (die Aliase werden also für jeden vhost gesondert konfiguriert.) Bei mir funktioniert das einwandfrei. Ich glaube auch mich erinnern zu können, dass der Apache die jeweils am Anfang und Ende stehenden "/" der Pfad-Angaben sehr ernst nimmt.
Leider ist es mein Problem, dass genau der Container mit der vhost-Angabe nicht ausgewertet wird! Wenn er die dort enthaltene DocumentRoot nehmen würde, wären meine Probleme beseitigt. Sandy -- Antworten bitte nur in die Mailingliste! PMs bitte an: news-reply2 (@) japantest (.) homelinux (.) com -- Um die Liste abzubestellen, schicken Sie eine Mail an: suse-linux-unsubscribe@suse.com Um eine Liste aller verfuegbaren Kommandos zu bekommen, schicken Sie eine Mail an: suse-linux-help@suse.com
Sandy Drobic wrote on Mon, 26 Jun 2006 14:23:57 +0200:
Oliver Meißner-Knippschild wrote:
Leider ist es mein Problem, dass genau der Container mit der vhost-Angabe nicht ausgewertet wird! Wenn er die dort enthaltene DocumentRoot nehmen würde, wären meine Probleme beseitigt.
Sandy Und Martin's "Schnipsel-HowTo" hilft nicht? Machst Du die Änderungen im /etc/apache/vhosts.d/-Verzeichnis? Dann solltest Du drauf achten, dass die entsprechenden files .conf am Ende tragen, da nur die seitens der httpd.conf includiert(?!?) werden.
Schau mal auf http://httpd.apache.org/docs/2.2/vhosts/
dort sieht das so aus:
-- schnipp --
NameVirtualHost *:80
Oliver Meißner-Knippschild wrote:
Sandy Drobic wrote on Mon, 26 Jun 2006 14:23:57 +0200:
Oliver Meißner-Knippschild wrote:
Leider ist es mein Problem, dass genau der Container mit der vhost-Angabe nicht ausgewertet wird! Wenn er die dort enthaltene DocumentRoot nehmen würde, wären meine Probleme beseitigt.
Sandy Und Martin's "Schnipsel-HowTo" hilft nicht? Machst Du die Änderungen im /etc/apache/vhosts.d/-Verzeichnis? Dann solltest Du drauf achten, dass die entsprechenden files .conf am Ende tragen, da nur die seitens der httpd.conf includiert(?!?) werden.
Schau mal auf http://httpd.apache.org/docs/2.2/vhosts/ dort sieht das so aus:
-- schnipp -- NameVirtualHost *:80
Da der Server im Intranet steht, reicht auch die Beschränkung auf die IP-Adresse. Aber dein Beispiel hat mich auf die korrekte Idee gebracht. Offensichtlich muss die Angabe von NameVirtualHost in VirtualHost übernommen werden, sonst erfolgt die Zuordnung nicht.
ServerName www.domain.tld ServerAlias domain.tld *.domain.tld DocumentRoot /www/domain </VirtualHost>
ServerName www.otherdomain.tld DocumentRoot /www/otherdomain </VirtualHost> -- schnapp -- Wenn ich das richtig sehe müsstest du die "VirtualHost *:80"-Zeilen so stehen lassen. Die namen vergibst du dann via ServerName und die IP-Adressen an die sich der Apache binden soll in der NameVirtualhost-Angabe.
Ich habe jetzt folgende Angaben gemacht, die soweit erst einmal funktionieren:
/etc/sysconfig/apache2:
APACHE_CONF_INCLUDE_DIRS="/etc/apache2/vhosts.d/*.conf"
/etc/apache2/listen.conf:
NameVirtualHost 10.20.0.205:80
cat /etc/apache2/vhosts.d/*.conf:
Sandy Drobic schrieb:
Oliver Meißner-Knippschild wrote: Da der Server im Intranet steht, reicht auch die Beschränkung auf die IP-Adresse. Aber dein Beispiel hat mich auf die korrekte Idee gebracht. Offensichtlich muss die Angabe von NameVirtualHost in VirtualHost übernommen werden, sonst erfolgt die Zuordnung nicht.
ServerName www.domain.tld ServerAlias domain.tld *.domain.tld DocumentRoot /www/domain </VirtualHost>
ServerName www.otherdomain.tld DocumentRoot /www/otherdomain </VirtualHost> -- schnapp -- Wenn ich das richtig sehe müsstest du die "VirtualHost *:80"-Zeilen so stehen lassen. Die namen vergibst du dann via ServerName und die IP-Adressen an die sich der Apache binden soll in der NameVirtualhost-Angabe.
Ich habe jetzt folgende Angaben gemacht, die soweit erst einmal funktionieren:
/etc/sysconfig/apache2: APACHE_CONF_INCLUDE_DIRS="/etc/apache2/vhosts.d/*.conf"
/etc/apache2/listen.conf: NameVirtualHost 10.20.0.205:80
cat /etc/apache2/vhosts.d/*.conf:
ServerName spamkill.cohausz-florack.de DocumentRoot /srv/www/htdocs ServerAdmin webmaster@cohausz-florack.de ErrorLog /var/log/apache2/global-error.log CustomLog /var/log/apache2/spamkill.cohausz-florack.de-access_log common </VirtualHost>
ServerName intranet.example.com DocumentRoot /srv/www/vhosts/intranet ServerAdmin webmaster@example.com ErrorLog /var/log/apache2/intranet.example.com-error_log CustomLog /var/log/apache2/intranet.example.com-access_log common </VirtualHost>
ServerName logserver.example.com DocumentRoot /srv/www/vhosts/logserver ServerAdmin webmaster@example.com ErrorLog /var/log/apache2/logserver.example.com-error_log CustomLog /var/log/apache2/logserver.example.com-access_log common </VirtualHost>
Ich bekomme es bei mir nicht hin, dass ich meinen vhost über <subdomain> oder <subdomain>.host erreichen kann. Ist dies möglich? Wie? Hast du noch einen DNS-Server laufen, oder wie wissen die Rechner im Intranet, welcher Rechner welche IP hat? Danke schonaml! Martin -- Um die Liste abzubestellen, schicken Sie eine Mail an: suse-linux-unsubscribe@suse.com Um eine Liste aller verfuegbaren Kommandos zu bekommen, schicken Sie eine Mail an: suse-linux-help@suse.com
Martin Ereth wrote:
Sandy Drobic schrieb:
Oliver Meißner-Knippschild wrote: Da der Server im Intranet steht, reicht auch die Beschränkung auf die IP-Adresse. Aber dein Beispiel hat mich auf die korrekte Idee gebracht. Offensichtlich muss die Angabe von NameVirtualHost in VirtualHost übernommen werden, sonst erfolgt die Zuordnung nicht.
ServerName www.domain.tld ServerAlias domain.tld *.domain.tld DocumentRoot /www/domain </VirtualHost>
ServerName www.otherdomain.tld DocumentRoot /www/otherdomain </VirtualHost> -- schnapp -- Wenn ich das richtig sehe müsstest du die "VirtualHost *:80"-Zeilen so stehen lassen. Die namen vergibst du dann via ServerName und die IP-Adressen an die sich der Apache binden soll in der NameVirtualhost-Angabe. Ich habe jetzt folgende Angaben gemacht, die soweit erst einmal funktionieren:
/etc/sysconfig/apache2: APACHE_CONF_INCLUDE_DIRS="/etc/apache2/vhosts.d/*.conf"
/etc/apache2/listen.conf: NameVirtualHost 10.20.0.205:80
cat /etc/apache2/vhosts.d/*.conf:
ServerName spamkill.cohausz-florack.de DocumentRoot /srv/www/htdocs ServerAdmin webmaster@cohausz-florack.de ErrorLog /var/log/apache2/global-error.log CustomLog /var/log/apache2/spamkill.cohausz-florack.de-access_log common </VirtualHost>
ServerName intranet.example.com DocumentRoot /srv/www/vhosts/intranet ServerAdmin webmaster@example.com ErrorLog /var/log/apache2/intranet.example.com-error_log CustomLog /var/log/apache2/intranet.example.com-access_log common </VirtualHost>
ServerName logserver.example.com DocumentRoot /srv/www/vhosts/logserver ServerAdmin webmaster@example.com ErrorLog /var/log/apache2/logserver.example.com-error_log CustomLog /var/log/apache2/logserver.example.com-access_log common </VirtualHost> Ich bekomme es bei mir nicht hin, dass ich meinen vhost über <subdomain> oder <subdomain>.host erreichen kann. Ist dies möglich? Wie?
Hast du noch einen DNS-Server laufen, oder wie wissen die Rechner im Intranet, welcher Rechner welche IP hat?
Ja, du brauchst erst einmal einen DNS-Server, der die Namen auflöst. Wenn du auf einem Rechner nur einen Test fahren möchtest, kannst du das ja auch über die hosts-Datei machen. Das ist die DNS-Auflösung des kleinen Mannes. (^-^) Linux: /etc/hosts Windows: %windir%/system32/drivers/etc/hosts Sandy -- Antworten bitte nur in die Mailingliste! PMs bitte an: news-reply2 (@) japantest (.) homelinux (.) com -- Um die Liste abzubestellen, schicken Sie eine Mail an: suse-linux-unsubscribe@suse.com Um eine Liste aller verfuegbaren Kommandos zu bekommen, schicken Sie eine Mail an: suse-linux-help@suse.com
Sandy Drobic schrieb:
Martin Ereth wrote:
Hast du noch einen DNS-Server laufen, oder wie wissen die Rechner im Intranet, welcher Rechner welche IP hat?
Ja, du brauchst erst einmal einen DNS-Server, der die Namen auflöst. Wenn du auf einem Rechner nur einen Test fahren möchtest, kannst du das ja auch über die hosts-Datei machen. Das ist die DNS-Auflösung des kleinen Mannes. (^-^) Linux: /etc/hosts Windows: %windir%/system32/drivers/etc/hosts
Heißt das, dass ich bei den anderen Rechnern im Intranet meinen Rechner als Nameserver einstelle, und dann nur die /etc/hosts-Datei mit meinen Apache-Subdomains versehen muss? Oder muss ich dann auf jedem eine /etc/hosts pflegen? Das wird mir dann zu kompliziert. Martin -- Um die Liste abzubestellen, schicken Sie eine Mail an: suse-linux-unsubscribe@suse.com Um eine Liste aller verfuegbaren Kommandos zu bekommen, schicken Sie eine Mail an: suse-linux-help@suse.com
Martin Ereth schrieb: (...)
Ich bekomme es bei mir nicht hin, dass ich meinen vhost über <subdomain> oder <subdomain>.host erreichen kann. Ist dies möglich? Wie?
Hast du noch einen DNS-Server laufen, oder wie wissen die Rechner im Intranet, welcher Rechner welche IP hat?
Unter Linux findest du die hosts-Datei im Ordner /etc Auf Windows-Rechnern gibt es die Datei c:\(windir)\system32\drivers\etc\hosts Dort trägst du beispielsweise ein: 192.168.178.70 meine-interne-domain.tux 192.168.178.70 noch-eine-domain.tux 192.168.178.70 wäre durch die IP deines lokalen Apachen zu ersetzen, und die Domainnamen natürlich durch deine eigenen virtuellen Hosts. Die HTTP-Anfragen werden damit alle an denselben Server geschickt, hier 192.168.178.70, und anhand des gleichzeitig übertragenen Hostnamens (Domainnamens) überlegt sich dann der Apache, an welchen virtuellen Host die Anfrage geleitet wird. In einem kleinen Netzwerk mit wenigen internen Domains und wenigen Rechnern ist es nicht so schwierig, die Hosts-Dateien jeweils mit Hand nachzuführen. Wenn das zu umständlich wird, kommst du nicht darum herum, einen lokalen DNS-Server aufzusetzen. Das ist mehr Aufwand, hat aber den Vorteil größerer Flexibilität. Die lokalen Rechner richten ihre Anfragen an diesen Server in deinem lokalen Netz, und wenn du diesem Server neue lokale Domains bekannt gibst, kann er sofort die richtigen Antworten liefern. Wenn der DNS-Server einmal läuft, ist also nur noch eine Stelle zu pflegen statt mehrerer hosts-Dateien. Ist halt eine Frage des Aufwandes und der Bedürfnisse. Jürgen -- Um die Liste abzubestellen, schicken Sie eine Mail an: suse-linux-unsubscribe@suse.com Um eine Liste aller verfuegbaren Kommandos zu bekommen, schicken Sie eine Mail an: suse-linux-help@suse.com
Juergen Langowski schrieb:
Martin Ereth schrieb:
Ich bekomme es bei mir nicht hin, dass ich meinen vhost über <subdomain> oder <subdomain>.host erreichen kann. Ist dies möglich? Wie?
Hast du noch einen DNS-Server laufen, oder wie wissen die Rechner im Intranet, welcher Rechner welche IP hat?
Unter Linux findest du die hosts-Datei im Ordner /etc
Auf Windows-Rechnern gibt es die Datei
c:\(windir)\system32\drivers\etc\hosts
Dort trägst du beispielsweise ein:
192.168.178.70 meine-interne-domain.tux 192.168.178.70 noch-eine-domain.tux
192.168.178.70 wäre durch die IP deines lokalen Apachen zu ersetzen, und die Domainnamen natürlich durch deine eigenen virtuellen Hosts.
Die HTTP-Anfragen werden damit alle an denselben Server geschickt, hier 192.168.178.70, und anhand des gleichzeitig übertragenen Hostnamens (Domainnamens) überlegt sich dann der Apache, an welchen virtuellen Host die Anfrage geleitet wird.
In einem kleinen Netzwerk mit wenigen internen Domains und wenigen Rechnern ist es nicht so schwierig, die Hosts-Dateien jeweils mit Hand nachzuführen.
Wenn das zu umständlich wird, kommst du nicht darum herum, einen lokalen DNS-Server aufzusetzen. Das ist mehr Aufwand, hat aber den Vorteil größerer Flexibilität. Die lokalen Rechner richten ihre Anfragen an diesen Server in deinem lokalen Netz, und wenn du diesem Server neue lokale Domains bekannt gibst, kann er sofort die richtigen Antworten liefern. Wenn der DNS-Server einmal läuft, ist also nur noch eine Stelle zu pflegen statt mehrerer hosts-Dateien.
Ist halt eine Frage des Aufwandes und der Bedürfnisse.
Ein pflegen der hosts-Dateien auf den Windows-Clients ist nicht möglich (nicht meine PC's), sind aber in der Regel nicht mehr als 5. Kann ich nicht einfach in meine hosts die ganzen Einträge hineinschreiben, und dann den Windows-Rechnern meinen Nameserver eintragen? Oder: _muss_ ich einen DNS-Server laufen haben, um diesen Rechner als Nameserver an einem anderen eintragen zu können? Reicht da nicht diese hosts-Datei auf dem Server? Martin -- Um die Liste abzubestellen, schicken Sie eine Mail an: suse-linux-unsubscribe@suse.com Um eine Liste aller verfuegbaren Kommandos zu bekommen, schicken Sie eine Mail an: suse-linux-help@suse.com
Martin Ereth wrote:
In einem kleinen Netzwerk mit wenigen internen Domains und wenigen Rechnern ist es nicht so schwierig, die Hosts-Dateien jeweils mit Hand nachzuführen.
Wenn das zu umständlich wird, kommst du nicht darum herum, einen lokalen DNS-Server aufzusetzen. Das ist mehr Aufwand, hat aber den Vorteil größerer Flexibilität. Die lokalen Rechner richten ihre Anfragen an diesen Server in deinem lokalen Netz, und wenn du diesem Server neue lokale Domains bekannt gibst, kann er sofort die richtigen Antworten liefern. Wenn der DNS-Server einmal läuft, ist also nur noch eine Stelle zu pflegen statt mehrerer hosts-Dateien.
Ist halt eine Frage des Aufwandes und der Bedürfnisse.
Ein pflegen der hosts-Dateien auf den Windows-Clients ist nicht möglich (nicht meine PC's), sind aber in der Regel nicht mehr als 5.
In dem Fall solltest du einen DNS-Server aufsetzen und die Rechnernamen dort in einer Zone verwalten. Sinnvoll sind eigentlich nur zwei Möglichkeiten: 1. eine Hosts-Datei wird beim Login in die Domäne mit einer hosts.master synchronisiert 2. Du setzt einen DNS-Server ein, den die Clients per DHCP automatisch bekommen.
Kann ich nicht einfach in meine hosts die ganzen Einträge hineinschreiben, und dann den Windows-Rechnern meinen Nameserver eintragen?
Ha?!? Wenn du einen lokalen DNS-Server auf deiner Kiste laufen hast, dann kannst du den verwenden und musst nur deinen Windows-Clients sagen, dass die diesen DNS-Server verwenden sollen. Wenn auch die normalen Internet-Anfragen durch diesen Server laufen sollen, musst du natürlich ein Forwarding auf die Nameserver deines Providers einrichten.
Oder: _muss_ ich einen DNS-Server laufen haben, um diesen Rechner als Nameserver an einem anderen eintragen zu können? Reicht da nicht diese hosts-Datei auf dem Server?
Es ist eine Funktion des Betriebssystems, die Hosts-Datei auszulesen. Der DNS-Server wertet diese nicht aus. In /etc/nsswitch.conf für die Konfiguration der lokalen Namensauflösung siehst du auch die Möglichkeiten "DNS files ..." Mit files ist hier die Auflösung über die hosts-Datei gemeint. Sandy -- Antworten bitte nur in die Mailingliste! PMs bitte an: news-reply2 (@) japantest (.) homelinux (.) com -- Um die Liste abzubestellen, schicken Sie eine Mail an: suse-linux-unsubscribe@suse.com Um eine Liste aller verfuegbaren Kommandos zu bekommen, schicken Sie eine Mail an: suse-linux-help@suse.com
Martin Ereth schrieb: (...)
Ein pflegen der hosts-Dateien auf den Windows-Clients ist nicht möglich (nicht meine PC's), sind aber in der Regel nicht mehr als 5.
Wäre da vielleicht ein Kompromiss möglich? Die Hosts-Datei sieht auf normalen Windows-System ja immer gleich aus. Da steht als gültige Zeile normalerweise nur: 127.0.0.1 localhost Das heißt, die Windows-PCs könnten im Grunde Kopien ein und derselben Hosts-Datei verwenden. Diese ASCII-Datei könntest du als Service erstellen, per Email an die fünf Empfänger verschicken und erklären, dass sie diese ASCII-Datei mit "speichern unter" an der richtigen Stelle ablegen sollen. (Ich lasse jetzt mal Sicherheitsaspekte usw. außer Acht und unterstelle einfach, dass die Benutzer dir entweder sowieso vertrauen oder im Zweifelfall in der Lage sind, in die übermittelte Hosts-Datei reinzuschauen, ob alles ok ist.)
Kann ich nicht einfach in meine hosts die ganzen Einträge hineinschreiben, und dann den Windows-Rechnern meinen Nameserver eintragen?
Oder: _muss_ ich einen DNS-Server laufen haben, um diesen Rechner als Nameserver an einem anderen eintragen zu können? Reicht da nicht diese hosts-Datei auf dem Server?
Also, meines Wissens sieht das so aus: diese DNS-Anfragen laufen über einen bestimmten Port, normalerweise 53. Der Windows-PC sieht also in seiner Konfiguration nach, welchen Nameserver er benutzen soll, und klingelt dort auf Port 53 an: Ich hab hier eine Domain, gib mal die IP her. Der Rechner, der die Anfrage bekommt, muss also auf Port 53 die Ohren spitzen und bereit sein, solche Anfragen zu beantworten. Damit er das kann, muss ein Dienst aktiv sein, der sich um diesen Port kümmert. Dieser Dienst ist der DNS-Server oder Nameserver. Wenn der nicht aktiv ist, passiert überhaupt nichts, der empfangende Rechner hält sich sozusagen beide Ohren zu. Das ist wie HTTP: Wenn der Apache nicht läuft, kann dein Browser auf Port 80 so laut schreien wie er will, es kommt einfach kein Echo. Ich habe das bei mir so konfiguriert: Die Windows-Rechner haben ZWEI Eintragungen für DNS-Server. Der erste Server ist mein Entwicklungssystem für Webseiten mit Apache, DNS-Server und noch einigen anderen Sachen. Wenn er eingeschaltet ist, wird er von den Windows-Kisten benutzt. Wird er ausgeschaltet, merken die Windows-PCs, dass der erste Server nicht greifbar ist, und benutzen die zweite Eintragung (in meinem Fall der Router und dahinter der Nameserver des Providers). Die Linux-Kiste mit DNS-Server muss bei den Windows-PCs als Erste eingetragen werden, denn sonst geht die erste Anfrage über den Router an den Provider, von dort kommt die Fehlermeldung zurück, dass meine lokalen Domains xyz.zuhause.tux nicht bekannt sind (kein Wunder), und die Abfrage wird mit einem Fehler beendet. Der Zweite Server (die Linux-Kiste, die eigentlich Bescheid wüsste) wird von den Windows-PCs gar nicht erst gefragt. Deshalb also die Linux-Kiste zuerst eintragen und mit einem voll funktionsfähigen DNS-Server ausstatten. Anfragen nach internen Domains werden direkt beantwortet, dafür ist die Kiste ja sowieso zuständig, und bei Anfragen nach draußen fragt die Kiste über den Router beim Provider nach und leitet die Antwort an die Windows-PCs weiter. Der Rechner mit dem Apache-und DNS-Server ist übrigens ein stromsparender Laptop. Wenn ich mir den unter den Arm klemme, habe ich meine lokalen Webseiten samt Entwicklungsumgebung auf dem aktuellen Stand dabei, und die Windows-PCs kriegen immer noch über den zweiten Server (Router) alle Antworten auf DNS-Anfragen, die sie haben wollen. Ich bin noch Anfänger, was Linux angeht, und ich muss sagen, es ist gar nicht so schwer, einen DNS-Server aufzusetzen. Schon nach drei oder vier Wochen habe ich die ersten falschen DNS-Auflösungen von meiner Linuxkiste zurückbekommen: Endlich Leben auf der Leitung, das war ein großer Erfolg. Danach habe ich dann ein Update auf Suse 10.0 gemacht, alles vergessen und noch einmal von vorne angefangen. (Nein, war nur Spaß; es gibt gute Anleitungen dazu.) Jürgen -- Um die Liste abzubestellen, schicken Sie eine Mail an: suse-linux-unsubscribe@suse.com Um eine Liste aller verfuegbaren Kommandos zu bekommen, schicken Sie eine Mail an: suse-linux-help@suse.com
Juergen Langowski schrieb:
Martin Ereth schrieb:
(...) Das heißt, die Windows-PCs könnten im Grunde Kopien ein und derselben Hosts-Datei verwenden. Diese ASCII-Datei könntest du als Service erstellen, per Email an die fünf Empfänger verschicken und erklären, dass sie diese ASCII-Datei mit "speichern unter" an der richtigen Stelle ablegen sollen.
(Ich lasse jetzt mal Sicherheitsaspekte usw. außer Acht und unterstelle einfach, dass die Benutzer dir entweder sowieso vertrauen oder im Zweifelfall in der Lage sind, in die übermittelte Hosts-Datei reinzuschauen, ob alles ok ist.)
Da erscheint ein DNS-Server sinnvoller, da die PC-Inhaber nur kurzzeitig (nicht länger als 5 Tage) in meinem Intranet sein werden.
Ich bin noch Anfänger, was Linux angeht, und ich muss sagen, es ist gar nicht so schwer, einen DNS-Server aufzusetzen. Schon nach drei oder vier Wochen habe ich die ersten falschen DNS-Auflösungen von meiner Linuxkiste zurückbekommen: Endlich Leben auf der Leitung, das war ein großer Erfolg. Danach habe ich dann ein Update auf Suse 10.0 gemacht, alles vergessen und noch einmal von vorne angefangen. (Nein, war nur Spaß; es gibt gute Anleitungen dazu.)
OK. Dann werde ich wohl einen DNS aufsetzen müssen. Sinnvollerweise werde ich das dann mit einem dhcpd kombinieren. Gibt es da ein lesbares (deutsch oder englisch) HowTo? Es wird in der Zeit kein Internet zur Verfügung stehen, es ist also ein in sich vereinsamtes Mini-LAN. Es gibt meinen Rechner (192.168.0.10), der apache, mysql, dann wohl dhcp und dns serviert. Die anderen Rechner sind dann über ein Switch angeschlossen. Ich habe noch nie einen dhcp oder dns aufgesetzt. DHCP könnte ich hinbekommen, aber beim dns weiß ich ja noch nicht mal, wie der daemon heißt! Gibt es gute/freie Lektüre oder sieht sich jemand gewillt, mir beim Konfigurieren zu helfen? Danke schonmal! Martin
Martin Ereth schrieb: (...)
DHCP könnte ich hinbekommen, aber beim dns weiß ich ja noch nicht mal, wie der daemon heißt!
Der heißt named, dazu gehören /etc/named.conf /var/lib/named/* Sieh dir die existierenden Konfigurationsdateien einfach mal an, ohne was zu verändern, da steht schon einiges drin, was dich ein Stück weiterbringt.
Gibt es gute/freie Lektüre oder sieht sich jemand gewillt, mir beim Konfigurieren zu helfen?
Ich habe hier gerade noch was entdeckt: http://www.linuxnetmag.com/de/issue7/m7dnsmasq1.html Habe ich nicht selbst ausprobiert, soll aber wohl recht einfach zu handhaben sein und dürfte für deine Zwecke reichen. Ansonsten such einfach mal nach dns-server + how-to und ähnlichen Begriffen, es gibt reichlich Texte dazu. Jürgen
Hallo, On 27-Jun-2006 Juergen Langowski wrote:
Ich habe hier gerade noch was entdeckt:
http://www.linuxnetmag.com/de/issue7/m7dnsmasq1.html
Habe ich nicht selbst ausprobiert, soll aber wohl recht einfach zu handhaben sein und dürfte für deine Zwecke reichen.
Noch einfacher geht es kaum. Ich nutze dnsmasq seit laengerem; null problemo. Beste Gruesse, Heinz. -- Reisefuehrer Bulgarien u.a: http://www.erlebnis-bulgarien.de Reiseberichte Osteuropa: http://www.pahlke-online.de Barrierefreies Webdesign: http://www.Pahlke-KunstWebDesign.de
Heinz W. Pahlke schrieb:
On 27-Jun-2006 Juergen Langowski wrote:
Ich habe hier gerade noch was entdeckt:
http://www.linuxnetmag.com/de/issue7/m7dnsmasq1.html
Habe ich nicht selbst ausprobiert, soll aber wohl recht einfach zu handhaben sein und dürfte für deine Zwecke reichen.
Noch einfacher geht es kaum. Ich nutze dnsmasq seit laengerem; null problemo.
Danke für den heißen Tipp! Ich habe es kompiliert, ein INIT-Skript geschrieben und die /etc/hosts und /etc/resolv.conf angepasst, und siehe da: es passiert das, was ich will! Wenn man bind/named daneben sieht.... Einfacher gehts echt nicht! Danke an Euch! Viele Grüße Martin -- Um die Liste abzubestellen, schicken Sie eine Mail an: suse-linux-unsubscribe@suse.com Um eine Liste aller verfuegbaren Kommandos zu bekommen, schicken Sie eine Mail an: suse-linux-help@suse.com
Martin Ereth wrote:
Sandy Drobic schrieb:
Hallo Leute,
eine Frage an die Apache-kundigen in der Liste:
ich versuche auf einem Suse 9.2 Server mit Apache 2.0.52 namensbasierte virtuelle Server einzurichten. Apache reagiert auf die URL, nimmt jedoch nicht die in der <virtualserver> festgelegte DocumentRoot an.
Bekanntes Problem, Lösung siehe unten.
Unter Suse sind die Konfigurationsdateien in dermaßen viele Einzelsplitter zerlegt, dass mir nur noch schwindelig geworden ist.
Geht mir genauso, daher habe ich meine Einstellungen in eine eigene Datei (httpd.conf) eingetragen, die alles kompliziertere einbindet. Yast ist dafür geeignet, Einsteigern einen einfachen Apache anzulegen. Aber für alles kompliziertere ist Yast nicht mehr zu gebrauchen.
Wie richtet man unter Suse einen namebased virtual Host ein?!?
Zuerst muss apache auf den Schnittstellen hören:
Listen 80 Listen 8080 Listen 591
Ich habe in meiner httpd.conf für jeden Vhost einen Eintrag:
NameVirtualHost 192.168.0.10:80 NameVirtualHost 192.168.0.10:8080 NameVirtualHost 192.168.0.10:591
Das wäre ein Beispiel für eine portorientierte vhost-Lösung. Ich suche eher eine Lösung, die folgendes macht: NameVirtualHost 192.168.0.10 <VirtualHost www.example.com> Servername www.example.com DocumentRoot /srv/www/vhosts/www_example_com </Virtualhost> <Virtualhost mail.example.com> Servername mail.example.com> DocumentRoot /srv/www/vhosts/mail_example_com </Virtualhost> Also auf der IP-Adresse 192.168.0.10 eine Verteilung nach den Hostnamen. Das so in die httpd:conf geschrieben würde wahrscheinlich funktionieren, aber ich möchte eine Lösung, die auch Updates überlebt. (^-^)
und dann für jeden vhost einen Eintrag wie:
ServerName martin ServerAlias home.martin.workgroup DocumentRoot /srv/www/htdocs </VirtualHost> Wie genau das mit den Aliasen funktioniert, weiß ich nicht. Ich kann zwar welche definieren, aber wenn ich sie im Browser eingebe, findet er nichts. Wenn du es herausfindest, kannst du es mir ja schreiben.
Zunächst muss ja der DNS-Server die Auflösung liefern. Danach muss der Apache wissen, was er mit dem Namen des Servers machen soll. Eigentlich sollte es wie oben angeführt funktionieren, aber es fehlt anscheinend noch etwas. Sandy -- Antworten bitte nur in die Mailingliste! PMs bitte an: news-reply2 (@) japantest (.) homelinux (.) com -- Um die Liste abzubestellen, schicken Sie eine Mail an: suse-linux-unsubscribe@suse.com Um eine Liste aller verfuegbaren Kommandos zu bekommen, schicken Sie eine Mail an: suse-linux-help@suse.com
Am Montag, 26. Juni 2006 14:42 schrieb Sandy Drobic:
Ich suche eher eine Lösung, die folgendes macht:
NameVirtualHost 192.168.0.10
<VirtualHost www.example.com> Servername www.example.com DocumentRoot /srv/www/vhosts/www_example_com </Virtualhost>
<Virtualhost mail.example.com> Servername mail.example.com> DocumentRoot /srv/www/vhosts/mail_example_com </Virtualhost>
In den VirtualHost-Tags muß dann entweder * oder 192.168.0.10 stehen, aber nicht "www.example.com" oder "mail.example.com"... -- - Alexandra Achtung: Lesen gefährdet die Dummheit! -- Um die Liste abzubestellen, schicken Sie eine Mail an: suse-linux-unsubscribe@suse.com Um eine Liste aller verfuegbaren Kommandos zu bekommen, schicken Sie eine Mail an: suse-linux-help@suse.com
Alexandra Druecke wrote:
Am Montag, 26. Juni 2006 14:42 schrieb Sandy Drobic:
Ich suche eher eine Lösung, die folgendes macht:
NameVirtualHost 192.168.0.10
<VirtualHost www.example.com> Servername www.example.com DocumentRoot /srv/www/vhosts/www_example_com </Virtualhost>
<Virtualhost mail.example.com> Servername mail.example.com> DocumentRoot /srv/www/vhosts/mail_example_com </Virtualhost>
In den VirtualHost-Tags muß dann entweder * oder 192.168.0.10 stehen, aber nicht "www.example.com" oder "mail.example.com"...
So ist es, dass war anscheinend mein Hauptfehler. Ich nehme sogar an, dass der Eintrag von NameVirtualHost und VirtualHost identisch sein muss, da der Apache sich sonst beklagt. Sandy -- Antworten bitte nur in die Mailingliste! PMs bitte an: news-reply2 (@) japantest (.) homelinux (.) com -- Um die Liste abzubestellen, schicken Sie eine Mail an: suse-linux-unsubscribe@suse.com Um eine Liste aller verfuegbaren Kommandos zu bekommen, schicken Sie eine Mail an: suse-linux-help@suse.com
On Mon, Jun 26, 2006 at 12:07:06PM +0200, Sandy Drobic wrote:
Unter Suse sind die Konfigurationsdateien in dermaßen viele Einzelsplitter zerlegt, dass mir nur noch schwindelig geworden ist.
Die Aufteilung folgt eigentlich recht eng der Aufteilung von upstream.
Wo genau muss wie die Festlegung erfolgen, auf welcher IP der Apache die virtuellen Server erwartet und wo werden die Definitionen der virtuellen Server abgelegt?
/etc/apache2/listen.conf /etc/apache2/vhosts.d/*.conf
So langsam überlege ich mir, ob es nicht sinnvoller ist, einmal rm -rf /etc/apache2/* laufen zu lassen und eine zentrale httpd.conf anzulegen.
Das ist doch ganz einfach: setze /etc/sysconfig/apache2:APACHE_HTTPD_CONF=/etc/meinehttpd.conf vi /etc/meinehttpd.conf rcapache2 restart
Logmeldungen beim Start:
Starting httpd2 (prefork) [Mon Jun 26 12:00:03 2006] [warn] VirtualHost intranet.example.com:80 overlaps with VirtualHost [...] Hier die bisherige Konfiguration:
cat /etc/apache2/vhosts.d/*.conf: spamkill:~ # cat /etc/apache2/vhosts.d/*.conf
NameVirtualHost 10.20.0.205:80 <VirtualHost spamkill.example.com >
^^^^^^^^^^^^^^^^^^^^
Es hilft, hier grundsaetzlich die IP hinzuschreiben um die es geht. Den
Apache interessiert hier ausschliesslich die IP.
Und explizite Portangabe ist grundsaetzlich ratsam.
Also:
ServerName spamkill.example.com
^^^^^^^^^^^^^^^^^^^^ Dies ist der Punkt, wo der Name (den der HTTP-Client sendet) ins Spiel kommt.
So ist es, dass war anscheinend mein Hauptfehler. Ich nehme sogar an, dass der Eintrag von NameVirtualHost und VirtualHost identisch sein muss, da der Apache sich sonst beklagt.
Er muss nicht identisch sein, aber konsistent ;) Der Name im VirtualHost-Header wird halt in eine IP uebersetzt. Wichtig: Sehr aufschlussreich ist das Testen des vhost-Setups mit 'httpd2 -S'. /etc/apache2/vhosts.d/*.conf wird uebrigens immer inkludiert, das brauchst Du nicht in die include-Variable in /etc/sysconfig/apache2 zu schreiben. Peter
Sandy Drobic schrieb: [...]
Das so in die httpd:conf geschrieben würde wahrscheinlich funktionieren, aber ich möchte eine Lösung, die auch Updates überlebt. (^-^) Hallo Sandy, das geht ganz einfach: /etc/sysconfig/apache2: APACHE_CONF_INCLUDE_FILES=/etc/apache2.local/conf.d/*.conf
In das Verzeichnis /etc/apache2.local/conf.d/ kannst Du jetzt Deine eigenen *.conf Files legen. (Oder auch nur eine einzige mit allem drin ;) apache neustarten nicht vergessen ;) Bernd -- Um die Liste abzubestellen, schicken Sie eine Mail an: suse-linux-unsubscribe@suse.com Um eine Liste aller verfuegbaren Kommandos zu bekommen, schicken Sie eine Mail an: suse-linux-help@suse.com
On Monday 26 June 2006 12:07, Sandy Drobic wrote:
Hallo Leute,
eine Frage an die Apache-kundigen in der Liste:
ich versuche auf einem Suse 9.2 Server mit Apache 2.0.52 namensbasierte virtuelle Server einzurichten. Apache reagiert auf die URL, nimmt jedoch nicht die in der <virtualserver> festgelegte DocumentRoot an.
Unter Suse sind die Konfigurationsdateien in dermaßen viele Einzelsplitter zerlegt, dass mir nur noch schwindelig geworden ist.
Wo genau muss wie die Festlegung erfolgen, auf welcher IP der Apache die virtuellen Server erwartet und wo werden die Definitionen der virtuellen Server abgelegt?
So langsam überlege ich mir, ob es nicht sinnvoller ist, einmal rm -rf /etc/apache2/* laufen zu lassen und eine zentrale httpd.conf anzulegen.
Logmeldungen beim Start: Starting httpd2 (prefork) [Mon Jun 26 12:00:03 2006] [warn] VirtualHost intranet.example.com:80 overlaps with VirtualHost logserver.example.com:80, the first has precedence, perhaps you need a NameVirtualHost directive [Mon Jun 26 12:00:03 2006] [error] VirtualHost spamkill.example.com:0 -- mixing * ports and non-* ports with a NameVirtualHost address is not supported, proceeding with undefined results [Mon Jun 26 12:00:03 2006] [warn] VirtualHost logserver.example.com:80 overlaps with VirtualHost intranet.example.com:80, the first has precedence, perhaps you need a NameVirtualHost directive [Mon Jun 26 12:00:03 2006] [warn] VirtualHost intranet.example.com:80 overlaps with VirtualHost logserver.example.com:80, the first has precedence, perhaps you need a NameVirtualHost directive [Mon Jun 26 12:00:03 2006] [error] VirtualHost spamkill.example.com:0 -- mixing * ports and non-* ports with a NameVirtualHost address is not supported, proceeding with undefined results [Mon Jun 26 12:00:03 2006] [warn] NameVirtualHost 10.20.0.205:80 has no VirtualHosts
Hier die bisherige Konfiguration:
Also, die Antwort "Port weglassen" trifft hier nicht so ganz zu.
Wie ich es hier geloest habe funktioniet das tadellos, hab da auch lang dran
gesessen.
Beispielhafter Eintrag aus vhosts.d: (Rewrite-Kram, Custom Logs etc hab ich
mal rausgelassen)
Wie richtet man unter Suse einen namebased virtual Host ein?!?
Sandy
-- Antworten bitte nur in die Mailingliste! PMs bitte an: news-reply2 (@) japantest (.) homelinux (.) com
-- Benjamin Zeller Ing.-Büro Hohmann Bahnhofstr. 34 D-82515 Wolfratshausen Tel.: +49 (0)8171 347 88 12 Mobil: +49 (0)160 99 11 55 23 Fax: +49 (0)8171 910 778 mailto: zeller@ibh-wor.de www.ibh-wor.de
participants (10)
-
Alexandra Druecke
-
Benjamin Zeller
-
Heinz W. Pahlke
-
Juergen Langowski
-
listen
-
Manfred Tremmel
-
Martin Ereth
-
Oliver Meißner-Knippschild
-
poeml@cmdline.net
-
Sandy Drobic