PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : apache2: vererbung von default-server?



Seiten : [1] 2

Froschpopo
25.08.07, 12:28
Hallo Ihrs!

ich habe ein kleines Verständnisproblem hinsichtlich apache2.

Ich betreibe einen einzelnen Server den ich in default-server.conf konfiguriert habe.
Dort sind u.a. auch mod_rewrite-Eigenschaften definiert (RewriteRule's usw.).
Kann es sein, dass wenn ich nun einen vhost einrichte, diese mod_rewirte-Dinger auf den vhost vererbt werden?

ich dachte immer, in default-server.conf wird ein von den vhosts unabhängiger server beschrieben.

Ich habe ja schon den Verdacht, dass es so ist aber vielleicht möchte mich ja noch jemand korrigieren?

Ansonsten darf ich euch ein schönes Wochenende wünschen!
LG

marce
25.08.07, 12:42
Die Konfiguration ist pro vHost - da wird nichts vererbt.

Es gibt aber auch allgemeingültige Einstellungen - diese werden dann allerdings ausserhalb jedes vHosts gemacht...

Froschpopo
25.08.07, 12:44
Die Konfiguration ist pro vHost - da wird nichts vererbt.

Es gibt aber auch allgemeingültige Einstellungen - diese werden dann allerdings ausserhalb jedes vHosts gemacht...

Aber wenn ich das richtig verstanden habe, dann ist default-server.conf KEIN vhost.
Also was nun?

marce
25.08.07, 14:09
es ist quasi auch einer - solange es keine anderen vhosts gibt. Wenn es andere gibt, dann gelten die Einstellungen in diesen...

Aber poste doch mal Deine Konfiguration, dann kann man besser sagen, was evtl. in die vHosts übernommen wird und was nicht...

Ansonsten empfiehlt sich immer, mal http://httpd.apache.org/docs/2.0/ zu befragen...

Froschpopo
25.08.07, 15:10
Wenn es andere gibt, dann gelten _die_ (welche meinst du mit DIE) Einstellungen in diesen...

Deine Grammatik macht mich noch ganz kirre.

Deinen Worten entnehme ich:
1. Wenn kein vhost vorhanden ist, gilt defaultserver
2. wenn ein vhost vorhanden ist, dann werden die default-server eigenschaften übernommen

marce
25.08.07, 15:14
(1) ja
(2) nicht unbedingt.

Froschpopo
25.08.07, 15:23
wann trifft (2) zu?

marce
25.08.07, 15:24
kommt auf die Direktive an.

Liess doch einfach die Doku - da steht's...

Froschpopo
25.08.07, 17:30
was mich teilweise verunsichert ist, dass in default-server.conf "DocumentRoot" einfach so frei rumsteht ohne einem Directive anzugehören.
Ich kann mir nicht vorstellen, dass das sich nicht auf die vHosts auswirkt, es sei denn, apache gruppiert die gesammte Datei in ein Directive.

Hör doch bitte immer mit den Verweisen auf die Doku auf, die hat damit nichts zu tun. Dort ist keine Rede von default-server.conf und auch keine server-tuning.conf etc. Das sind Aufteilungen von SuSE

marce
25.08.07, 17:42
Was soll ich denn sonst machen wenn nicht auf die Doku verweisen? Vor allem, da Du bisher ja kein Stückchen Konfiguration gepostet hast. In der Doku wird wirklich alles sehr gut erklärt... Wie die Dateien heißen hat doch gar nichts damit zu tun - das ist nur eine mehr oder weniger logische Aufteilung der gesamten Konfiguration, die Suse (und viele andere Distris) (aus meiner Sicht) leider eingeführt haben...

Es bleibt dabei: Je nach dem hat das, was außerhalb einer vHost-Konfiguration steht mehr oder weniger viel Einfluss auf den vHost selbst (und auch abhänig davon, was in der vHost-Konfig steht)... Die Konfiguration des Apache muss immer als Gesamteinheit betrachtet werden.

Froschpopo
25.08.07, 18:08
default-server.conf:


DocumentRoot "/srv/www/htdocs"
ServerName example.tld
<Directory "/srv/www/htdocs">
Options None
AllowOverride None
Order allow,deny
Allow from all
</Directory>

Alias /icons/ "/usr/share/apache2/icons/"

<Directory "/usr/share/apache2/icons">
Options Indexes MultiViews
AllowOverride None
Order allow,deny
Allow from all
</Directory>

ScriptAlias /cgi-bin/ "/srv/www/cgi-bin/"

<Directory "/srv/www/cgi-bin">
AllowOverride None
Options +ExecCGI -Includes
Order allow,deny
Allow from all
</Directory>

Include /etc/apache2/conf.d/*.conf
Include /etc/apache2/conf.d/apache2-manual?conf
Mein Problem im wesendlich ist, dass wenn ich nun einen vhost einrichte, der default-server nicht mehr funktioniert, geschweige denn der vhost.

marce
25.08.07, 18:21
Darf man auch noch erfahren, wie Du denn den vHost einrichtest?

Froschpopo
25.08.07, 18:28
ich erstelle eine datei
/etc/apache2/vhosts.d/beispielhost.conf


<VirtualHost beispielhost.tld>
ServerName beispielhost.tld
ServerAdmin webmaster@beispielhost.tld
DocumentRoot /srv/www/htdocs/beispielhost

<Directory "/srv/www/htdocs/beispielhost">
Options Indexes FollowSymLinks
AllowOverride None
Order allow,deny
Allow from all
</Directory>

</VirtualHost>

marce
25.08.07, 18:31
Nur soviel? Und es gibt keine Fehlermeldung beim Start? Oder einen Kommentar? Naja, auf jeden Fall, das kann so nicht funktionieren...

Vielleicht solltest Du doch mal die Doku lesen - folgender Abschnitt könnte da echt interessant sein...

http://httpd.apache.org/docs/2.0/vhosts/name-based.html

Froschpopo
25.08.07, 18:48
Ich habe das in den vhost eingetragen, aber wenn ich die domain des vhost's anwähle komme ich immer auf den default server. Der Fehler liegt irgendwoanders!
Keine Fehlermeldung.
Vielleicht noch etwas wissenswerters: Wenn ich mit Yast2 den default server bearbeite, dann steht unten immer das Wertpaar:

ServerName example.tld
Server-Auflösung: Auflösung über verwendete IP-Adresse

Letzteres kann ich irgendwie nicht ändern. Ich habe schon Auflösung über Header gewählt, aber nachm neustart steht dann wieder der alte Wert dort.
In den Konfig-Dateien gibt es auch keine "Server-Auflösung"-Variable.

marce
25.08.07, 18:55
wie wählst Du denn "die Domain des vHost" ab? Deine Beschreibungen sind sowas von schwammig...

Der Fehler liegt sicherlich wo anders - weil es ansonsten ja problemlos funktioniert...

Froschpopo
25.08.07, 19:02
Im Browser gebe ich die Domain ein.
Daraufhin bekomme ich, egal ob ich über die Vhost-Domain ankomme, immer auf den default server.

marce
25.08.07, 19:05
DNS ist korrekt? Poste mal die komplette, aktuelle Apache-Konfiguration. Was steht im Logfile?

Froschpopo
25.08.07, 19:11
default-server.conf:


DocumentRoot "/srv/www/htdocs"
<Directory "/srv/www/htdocs">
Options None
AllowOverride None
Order allow,deny
Allow from all
</Directory>

Alias /icons/ "/usr/share/apache2/icons/"

<Directory "/usr/share/apache2/icons">
Options Indexes MultiViews
AllowOverride None
Order allow,deny
Allow from all
</Directory>

ScriptAlias /cgi-bin/ "/srv/www/cgi-bin/"

<Directory "/srv/www/cgi-bin">
AllowOverride None
Options +ExecCGI -Includes
Order allow,deny
Allow from all
</Directory>

RewriteEngine On
RewriteRule /index.html /cgi-bin/index.pl [PT]
RewriteRule ^/profil/([0-9]+)\.html$ /cgi-bin/index.pl?ID=profil&userid=$1 [PT]
RewriteRule ^/profil/([0-9]+)$ /cgi-bin/index.pl?ID=profil&userid=$1 [PT]

<FilesMatch "(index|thumb|index)\.pl$">
SetHandler perl-script
PerlHandler ModPerl::Registry
Options +ExecCGI
</FilesMatch>

Include /etc/apache2/conf.d/*.conf

Include /etc/apache2/conf.d/apache2-manual?conf
ServerName example.tld
ServerAdmin technik@example.tld


und das ist mein vhost:


<VirtualHost beispielhost.tld>
DocumentRoot /srv/www/htdocs/beispielhost
ServerName beispielhost.tld
ServerAdmin info@beispielhost.tld
ScriptAlias /cgi-bin/ /srv/www/cgi-bin
<Directory /srv/www/cgi-bin>
AllowOverride None
Options +ExecCGI -Includes
Order allow,deny
Allow from all
</Directory>
# YaST created entry
<Directory "/srv/www/htdocs/beispielhost">
Options None
AllowOverride None
Order allow,deny
Allow from all
</Directory>
</VirtualHost>

marce
25.08.07, 19:17
ok, Du hast den von mir in #14 (http://www.linuxforen.de/forums/showpost.php?p=1567876&postcount=14) geposteten Link nicht durchgelesen. Oder nicht verstanden.

Die von Dir versuchte Variante funktioniert nur bei IP-Base virt. Hosts. Und wenn es ein solcher sein sollte, so wäre sie noch unvollständig.

Froschpopo
25.08.07, 19:25
Doch, habs gelesen aber hatte ja auch schon erwähnt, dass es nicht geklappt hat.


NameVirtualHost beispielhost.tld
<VirtualHost beispielhost.tld>
DocumentRoot /srv/www/htdocs/beispielhost
ServerName beispielhost.tld
ServerAdmin info@beispielhost.tld
ScriptAlias /cgi-bin/ /srv/www/cgi-bin
ServerAlias
<Directory /srv/www/cgi-bin>
AllowOverride None
Options +ExecCGI -Includes
Order allow,deny
Allow from all
</Directory>
# YaST created entry
<Directory "/srv/www/htdocs/beispielhost">
Options None
AllowOverride None
Order allow,deny
Allow from all
</Directory>
</VirtualHost>

hier mein nicht funktionierendes Beispiel mit NameVirtualHost und ServerAlias
Er erkennt den gesamten vHost nicht an.
Ich kann z.b. auch keine Dateien in den Ordner beispielhost legen und dann via beispielhost.tld/datei abrufen. Er tut einfach so, als gäbe es diesen vHost garnicht.

marce
25.08.07, 19:40
welches syntaktisch falsch ist und mit dem auf der Seite vorhanden Beispiel in den relevanten Teilen irgendwie nicht viele Gemeinsamkeiten hat:

NameVirtualHost *:80

<VirtualHost *:80>
ServerName www.domain.tld
ServerAlias domain.tld *.domain.tld
DocumentRoot /www/domain
</VirtualHost>

<VirtualHost *:80>
ServerName www.otherdomain.tld
DocumentRoot /www/otherdomain
</VirtualHost>

Froschpopo
25.08.07, 19:44
Also für den vHost hat das jetzt funktioniert. Aber nun geht der default server nicht mehr. Fehlermeldung: 404
Für den default server nutze ich die von Yast2 vorgegebenen Daten. In default-server.conf taucht <VirtalHost> kein einziges mal auf wie man oben auch sehen kann.
Wenn ich das jetzt ändere, dann werde ich nie wieder mit Yast2 die Konfig bearbeiten können.

marce
25.08.07, 20:04
Zitat von der von mir schon öfters erwähnten Webseite:

Der Hauptserver verschwindet
Wenn Sie virtuelle Hosts zu einem bestehenden Webserver hinzufügen, müssen Sie auch einen <VirtualHost>-Block für den bestehenden Host (Anm.d.Ü.: und bisherigen Hauptserver) erstellen. Die ServerName- und DocumentRoot-Anweisungen zu diesem virtuellen Host sollten die gleichen sein wie die globalen ServerName- und DocumentRoot-Anweisungen. Führen Sie diesen virtuellen Host als erstes in der Konfigurationsdatei auf, so dass er als Standard-Host fungiert.

So langsam solltest Du eigentlich selbst drauf kommen, das das, was da steht durch interessant sein kann... Die Jungs haben sich etwas was dabei gedacht, als sie es "Dokumentation" genannt haben...

Und dass Du das Ding dann evtl. nicht mehr mit YAST konfigurieren kannst ist nun mal ein echt tragisches Schicksal...

Froschpopo
25.08.07, 20:21
Mir gehört der Rechner nicht. Der Eigentümer möchte jederzeit Änderungen in Yast vornehmen können. Das ist ja mein Dilemma. Ich glaub, dass man noch nichtmal VirtualHosts in Yast2 anlegen kann.

in der default-server.conf steht übrigens in der ersten zeile:

# Global configuration that will be applicable for all virtual hosts, unless deleted here, or overriden elswhere

marce
25.08.07, 20:58
wie gesagt - kommt auf die Direktive an. Manche ja, manche nein :-) Bestes Beispiel: DocumentRoot.

Von Suse gedacht ist natürlich, dass man dort nur Dinge reinschreibt, die allgemein gültig sind - es hindert Dich aber niemand daran, dort Module zu laden, vHosts zu definieren, Aliase reinzuschreiben. Zählen tut im Endeffekt die Koniguration, die nach dem zusammenfügen (-> include *.conf) aller Teile herauskommt.

Ansonsten - einen Tod musst Du sterben. Entweder mit YAST und es geht nicht alles, was der Indianer kann. Oder eben manuell...

Froschpopo
25.08.07, 22:40
*******e ey, jetzt hats so schön funktioniert aber Perlscripte laufen nicht mehr. Verdammt !


NameVirtualHost beispielhost.tld
<VirtualHost beispielhost.tld>
DocumentRoot /srv/www/htdocs/beispielhost
ServerName beispielhost.tld
ServerAdmin info@beispielhost.tld
ScriptAlias /cgi-bin/ /srv/www/cgi-bin
ServerAlias beispielhost.tld *.beispielhost.tld
<Directory /srv/www/cgi-bin>
AllowOverride None
Options +ExecCGI -Includes
Order allow,deny
Allow from all
</Directory>
# YaST created entry
<Directory "/srv/www/htdocs/beispielhost">
Options None
AllowOverride None
Order allow,deny
Allow from all
</Directory>
</VirtualHost>

marce
25.08.07, 22:45
vermutlich fehlt der FileHandler - s.o. bei der alten default.conf...

Froschpopo
25.08.07, 22:52
<Directory /srv/www/cgi-bin>
AddHandler perl-script .cgi .pl
AllowOverride None
Options +ExecCGI -Includes
Order allow,deny
Allow from all
</Directory>


bekomme weiterhin 403 Forbidden

marce
26.08.07, 10:58
was steht im Logfile?