• Willkommen im Linux Club - dem deutschsprachigen Supportforum für GNU/Linux. Registriere dich kostenlos, um alle Inhalte zu sehen und Fragen zu stellen.

[gelöst] zu "Virtualhosts anlegen" - Mehrere Frage

Yehudi

Guru
Ich beziehe mich hier auf folgenden Thread:

"Virtualhosts anlegen"
http://www.linux-club.de/viewtopic.php?t=38317

Bei mir sollen die virtual Hosts auf zwei unterschielichen Netzwerkkarten laufen. 192.168.3.1 Intranet und 192.168.1.1 Internet. Es ist überflüssig, die Internetseite welche über Joomla läuft intern überhaupt aufzurufen, da einige Abrufe über die Internetadresse laufen.
Muss dafür ein solcher Eintrag in Yast gemacht werden?

Erster Schritt: Die notwendigen IP's an die Netzwerkkarte binden

Einmalig (muss nach jedem Neustart wiederholt werden)
mit "ip addr add 192.168.1.20/24 dev eth0"
und "ip addr add 192.168.1.21/24 dev eth0"

oder fest über Yast (bei Debian geht das über einen Eintrag in /etc/network/interfaces):

Yast -
Netzwerkgeräte -
Netzwerkkarte -
Bereits konfigurierte Geräte -
Ändern -
(Physische Netzwerkkarte auswählen) Bearbeiten -
Erweitert -
Zusätzliche Adressen -
Hinzufügen

Ein Aliasnamen vergeben, als IP z.B. die oben genannte und als Netzmaske die 255.255.255.0 vergeben.

Schließlich habe ich die beiden virtualhosts ja schon physisch getrennt. Muss ich irgendwas stattdessen ausführen oder in Betracht ziehen?
Und was bedutet die /24?


Handelt es sich bei dem vierten Schritt um locale oder auch um extern verfügbare Seiten?
Vierter Schritt: In "/etc/hosts" den IP's Namen und Alias zuordnen.

unter "127.0.0.1 localhost"
192.168.1.20 local.michael1.de
192.168.1.21 local.michael2.de

In meinem Fall wäre die lokale Seite 192.168.3.1 local.heim.netz
die externe aber dann 192.168.1.1 www.yehudi.org


Wenn ja, bis welche Versionsnummer könnte ich upgraden, um mit php4 zu arbeiten (Joomla läuft mit php.4.4)

Das Ergebnis sieht dem von roemi änlich:
Code:
linux: # httpd2 -t && rcapache2 reload
[Thu Mar 09 09:26:46 2006] [error] VirtualHost 192.168.3.1:80 -- mixing * ports and non-* ports with a NameVirtualHost address is not supported, proceeding with undefined results
[Thu Mar 09 09:26:46 2006] [error] VirtualHost 192.168.1.1:80 -- mixing * ports and non-* ports with a NameVirtualHost address is not supported, proceeding with undefined results
Syntax OK
Reload httpd2 (graceful restart)                                      done

An der Stelle macht er aber eine Neuinstallation.

Trifft das derzeit, oder bei der Versionsnummer 2.0.54-10 noch zu?
Apache2 Update über apt und der Apache geht nicht mehr.

Der Apache läuft ja im Single-Modus, und der Thread ist ja auch nicht mehr taufrisch.

edit: Ich habe den Titel von "Virtualhosts anlegen - Mehrere Fragen" zu "zu 'Virtualhosts anlegen' - Mehrere Fragen" geändert, damit klar ist, dass ich mich auf dies HowTo beziehe.
 
OP
Y

Yehudi

Guru
Entfernt man bei den /etc/apache2/vhosts.d/*.conf
in der Zeile
<VirtualHost 192.168.1.2:80>
die 80, dann ist das Ergebnis folgendes:

linux: # httpd2 -t && rcapache2 reload
Syntax OK
Reload httpd2 (graceful restart) done

Frage ich aber danach den Status des Apachen ab:

Code:
linux: # rcapache2 status
Checking for httpd2:                                                  unused
linux: # rcapache2 start
Starting httpd2 (prefork) startproc:  exit status of parent of /usr/sbin/httpd2-prefork: 1
                                                                      failed
linux: #

sehe ich, dass er unused ist. Also starte ich ihn mit dem Befehl. Und da weigert sich der Apache.
 
OP
Y

Yehudi

Guru
google ich mal nach der Fehlermeldung:

"exit status of parent of /usr/sbin/httpd2-prefork:"

Code:
linux:~ # ps aux | grep httpd
root      3590  0.0  0.0   2780   712 pts/4    R+   17:25   0:00 grep httpd
linux:~ #

Code:
linux:~ # rcapache2 try-restart
Checking for httpd2:                                                  unused
linux:~ #
 
OP
Y

Yehudi

Guru
Hallo beleg,

ich vermute fast dass es an bind liegt, oder aber daran, dass die beiden virtaulhost auf zwei Karten zugreifen sollen.

Das ist ist die Konfiguration ins Internet:
Code:
<VirtualHost 192.168.1.1>
# <VirtualHost yehudi.homelinux.org>
 ServerAdmin meine email
 DocumentRoot /srv/www/Joomla-mambo
 ServerName yehudi.homelinux.org
 ServerAlias www.yehudi.homelinux.org
 ErrorLog /var/log/httpd/yehudi.homelinux.org-error_log
 CustomLog /var/log/httpd/yehudi.homelinux.org-access_log common
 <Directory >
  RewriteEngine On
  Options Indexes Includes FollowSymLinks MultiViews
  AllowOverride Indexes AuthConfig Limit FileInfo
  AllowOverride All
  Order allow,deny
  Allow from 192.168.1.1 
 </Directory>
</VirtualHost>

und das die Konfiguration nach innen also fürs Intranet:

Code:
<VirtualHost 192.168.3.1>
# <VirtualHost heim.netz>
 ServerAdmin meine email
 DocumentRoot /srv/www/htdocs
 ServerName heim.netz
 ServerAlias www.heim.netz
 ErrorLog /var/log/http.intranet.error
 CustomLog /var/log/access_log.intranet common
 <Directory >
  RewriteEngine On
  Options Indexes Includes FollowSymLinks MultiViews
  AllowOverride Indexes AuthConfig Limit FileInfo
  AllowOverride All
  Order allow,deny
  Allow from 127.0.0.1
  Allow from 192.168.3.1/24
 </Directory>
</VirtualHost>

Ich habe schon mehrere Sachen ausprobiert, und auch schon rumgegooglet wie ein Irrer, wegen der Fehlermeldungen.

Wie gesagt, ich glaube, irgendwas ist mit meinem bind oder DNS nicht in Ordnung:
http://www.linux-club.de/viewtopic.php?t=55307&start=0&postdays=0&postorder=asc&highlight=
 

baumpaul

Hacker
He,he das mit den
-- mixing * ports and non-* ports with a NameVirtualHost address is not supported, proceeding with undefined results
hatte ich auch.
Das Problem waren nicht meine VirtualHosts sondern ein anderer,
bereits existierender und definierter Virtual Host.

Das Problem: (Beispiel)
Angaben wie.....
<VirtualHost mein.netz.local> (meiner)
und
<VirtualHost *:443> (bereits vorh.)
kolledieren, da die Zuständigkeit für die Anfrage auf
"mein.netz.local:443" nicht eindeutig zugeordnet werden kann.

Da <VirtualHost mein.netz.local> zuständig f. alle Ports dieser Adresse sein soll
und <VirtualHost *:443> alle Aufrufe mit Port 443 übernimmt.

Mann muß hier peinlich genau aufpassen, daß man mit <VH adresse : Port>
eindeutig bleibt.
Listen <Port> Anweisungen unter <VH.....> konnen helfen dem VH
seine Zuständigkeit eindeutig zuzuordnen. Schlag das aber besser nochmal nach.
Default VHs wie *:80 und *:443 killen das ganze System und müßen dann
genauer definiert oder gelöscht werden.

Deine Konfig.:
Hab das eigentlich genau wie du gemacht:
V-Host-Typ IP-basierend
1. => 2.ip auf eth0
2. => DNS Eintrag erweitert
3. => V-Hosts Angelegt.
und geht.
Hab ich schon wieder was übersehen ?
 

beleg

Member
Es kann sein, daß der Apache Probleme mit den Namen Deiner Logdateien hat.
Code:
ErrorLog /var/log/httpd/yehudi.homelinux.org-error_log
 CustomLog /var/log/httpd/yehudi.homelinux.org-access_log common
und
Code:
ErrorLog /var/log/http.intranet.error
 CustomLog /var/log/access_log.intranet common
Laß diese Dateinamen mal auf error_log und access_log. Leg vielleicht einfach extra Verzeichnisse dafür an, wenn Du magst. Also
Code:
ErrorLog /var/log/apache2/yehudi.homelinux.org/error_log
 CustomLog /var/log/apache2/yehudi.homelinux.org/access_log common
und
Code:
ErrorLog /var/log/apache2/intranet/error_log
 CustomLog /var/log/apache2/intranet/access_log common
Nur darauf achten, daß die Verzeichnisse dann auch da sind. Die werden nämlich nicht automatisch angelegt. Ich kann jetzt nicht sagen, ob es nun die Dateinamen selbst sind, die Schwierigkeiten machen oder fehlende Verzeichnisse (hast Du z.B. ein Verzeichnis /var/log/httpd?)
Aber wenn der Apache sich an sowas stört, startet er nicht.
 
OP
Y

Yehudi

Guru
Ich habe in /var/log/ drei Verzeichnisse angelegt:

  • yehudi.homelinux.org
  • intranet
  • httpd

Gehen wir in YAST rein > Netzwerkdienste > HTP-Server
aktivieren, und beenden.
Da wo die Fehlermeldung eigentlich kommt, verschwindet das Fenster ohne irgend eine Meldung. Mein Gedanke: "Ich habe doch kein Windows" - Zunächst glaube ich fast, dass meine Schrauberei in den etc. Dateien dazu geführt hat, dass ging einfach zu schnell. Doch die Hoffnung stirbt als letztes, und darum gehe ich mit neuem Mut in den Firefox, und tippe http://127.0.0.1/ ein. Das Ergebnis:
"Es klappt! Der Apache-Webserver ist auf dieser Website installiert!"
Erleichtert tippe ich
http://192.168.3.1/
ein. Dieses Ergebnis:
"Forbidden

You don't have permission to access / on this server.

Additionally, a 403 Forbidden error was encountered while trying to use an ErrorDocument to handle the request."

Warum das so ist mache ich mir erst mal keine Gedanken, denke das ist schon mal besser, als dass die Verbindung nicht zustande kommt und gebe folgende Adresse ein:
http://192.168.1.1/
Wow, die Joomla Seite ist da. 8) Und sogar mit allem, was eigentlich nur über
http://www.yehudi.homelinux.org/
abgerufen werden kann. (Das css und einige Bilder funktionieren nur über diese Adresse)
Und ich schiebe http://www.yehudi.homelinux.org/ erfolgreich hinterher. 8)
Last but not least: http://www.heim.netz/
Auch hier bekomme ich die gleiche Meldung, wie unter http://192.168.3.1/

Also begebe ich mich an zwei weitere Rechner, die ich an den Server angeschlossen habe. Ein G4 und ein ibook. Beide sagen mir mit beiden Intranetadressen das gleiche.

Ich rufe meine http://www.yehudi.homelinux.org/ darüber auf, und trau meinen Augen nicht, bei den beiden Apple-rechnern ist diese Seite nicht erreichbar. :cry:
Ein Aufruf meiner Seite http://www.yehudi.de zeigt mir aber sofort, dass das Routing und die Internetverbindung zu beiden Rechnern OK ist. Wird die Seite nur aus dem Cache geladen, dann taucht der Zähler nicht auf. Als weiteren Test nutze ich immer eine Eingabe in Google, die ich noch nie gemacht habe.

Kommt von außen jemand auf die Seite?

@beleg: Wenn Du raufkommst kannst Du das Ergebnis der Programierarien aus unseren Threads sehen. An dieser Stelle noch mal Danke, und auch, dass der Apache startet.

@baumpaul: Diese Fehlermeldung kann mehrere Ursachen haben, aufgrund meiner google-suche mit der Fehlermeldung, hätte ich dort ein ganzes Buch zu schreiben können. In meinem Fall lag es wohl einfach an den Ports. Bei einem langen Thread, wie dieser, und das HowTo, welches ich eingangs erwähnte, drohen natürlich schnell Fehlerquellen sich aufzutun, weil man sich verzettelt. Bei dem Thread mit dem DNS
Konfiguration eines Namesservers unter Suse 10.0 habe ich das ganze in eine Textdatei gepackt, und die Änderungen dort eingefügt, danach bin ich dann alle Dateien noch mal durchgegangen, und siehe da man entdeckt, dann plötzlich Nichtübereinstimmungen.
Zwar bin ich wohl noch nicht damit durch, aber auch wie hier mit einen Meilenschritt weiter. Leider hängt auch beides von einander ab.
 

beleg

Member
Ja also, ich erreiche die http://www.yehudi.homelinux.org/
Insofern klappt das ja schon mal. Aber da ist nur die Apache Testseite. Gehe ich dann weiter in das Verzeichnis joomla, dann ist da eine Seite, in der zwar eine Navigation, aber kein Inhalt ist. Und alles ohne Formatierungen. Ist das so richtig?
 
OP
Y

Yehudi

Guru
Hallo beleg,

danke erst mal für Dein Feedback. Die Testseite vom Apache solltest Du da nicht haben, und auch kein Verzeichnis Joomla.
Da läuft also noch irgendwas verkehrt.

Ich versuch das mal abzuchecken.
 
OP
Y

Yehudi

Guru
Mir scheint ich habe den Fehler entdeckt:

Code:
NameVirtualHost 192.168.1.1

#<VirtualHost 192.168.1.1>
<VirtualHost *>
 ServerName yehudi.homelinux.org
 ServerAdmin meine email
 ServerAlias www.yehudi.homelinux.org
 DocumentRoot /srv/www/Joomla-mambo
 ErrorLog /var/log/apache2/yehudi.homelinux.org/error_log
 CustomLog /var/log/apache2/yehudi.homelinux.org/access_log common
 <Directory >
  RewriteEngine On
  Options Indexes Includes FollowSymLinks MultiViews
  AllowOverride Indexes AuthConfig Limit FileInfo
  AllowOverride All
  Order allow,deny
  Allow from all
 </Directory>
</VirtualHost>

Ich habe zwei Kleinigkeiten geändert: nbrk hatte in dem angesprochenen Thread geschrieben z.B. NameVirtualHost 192.168.1.1 vor Include /etc/apache2/vhosts.d/*.conf zu setzen, es ist aber durchaus von Vorteil, das in der Datei zu setzen, wenn man einen weiteren VirtualHost hinzufügt, braucht man nur eine Datei kopieren, und in dieser die Änderungen machen.
Der eigentliche Fehler war aber <VirtualHost 192.168.1.1>, die Ip habe ich gegen das Sternchen ausgetauscht.
Momentan liegt diese Seite auch auf localhost, was ich ev. noch ändern kann.
Ansonsten scheint es zu funktionieren.

Edit: Ich habe "Allow from all" geändert zu "Allow from 192.168.1.1" das funktioniert dann nur auf dem Rechner über diese IP, auch über den Domainnamen funktioniert es nicht.

Code:
NameVirtualHost 192.168.3.1

# <VirtualHost 192.168.3.1>
<VirtualHost heim.netz>
 ServerAdmin meine email
 DocumentRoot /srv/www/htdocs
 ServerName heim.netz
 ServerAlias www.heim.netz
 ErrorLog /var/log/apache2/intranet/error_log
 CustomLog /var/log/apache2/intranet/access_log common
 <Directory >
  RewriteEngine On
  Options Indexes Includes FollowSymLinks MultiViews
  AllowOverride Indexes AuthConfig Limit FileInfo
  AllowOverride All
  Order allow,deny
  Allow from 127.0.0.1
  Allow from 192.168.3.1/24
 </Directory>
</VirtualHost>
 
Oben