Vhost servername wird nicht aufgelöst

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

Vhost servername wird nicht aufgelöst

Postby james007 » 22. August 2010 21:10

Hallo zusammen,

ich arbeite gerade an der Lösung eines etwas sehr skurielen Problems.
Um es kurz zu machen. Der Servername eines vhosts wird nicht aufgelöst der Serveralias aber schon.

Es handelt sich um einen Debian Root Server der mit SysCP konfiguriert wird.
Hier mal die Apache Version:

Code: Select all
srv:/etc/bind/domains# apache2ctl -V
Server version: Apache/2.2.9 (Debian)
Server built:   Mar 28 2010 19:04:04
Server's Module Magic Number: 20051115:15
Server loaded:  APR 1.2.12, APR-Util 1.2.12
Compiled using: APR 1.2.12, APR-Util 1.2.12
Architecture:   64-bit
Server MPM:     Prefork
  threaded:     no
    forked:     yes (variable process count)
Server compiled with....
 -D APACHE_MPM_DIR="server/mpm/prefork"
 -D APR_HAS_SENDFILE
 -D APR_HAS_MMAP
 -D APR_HAVE_IPV6 (IPv4-mapped addresses enabled)
 -D APR_USE_SYSVSEM_SERIALIZE
 -D APR_USE_PTHREAD_SERIALIZE
 -D SINGLE_LISTEN_UNSERIALIZED_ACCEPT
 -D APR_HAS_OTHER_CHILD
 -D AP_HAVE_RELIABLE_PIPED_LOGS
 -D DYNAMIC_MODULE_LIMIT=128
 -D HTTPD_ROOT=""
 -D SUEXEC_BIN="/usr/lib/apache2/suexec"
 -D DEFAULT_PIDLOG="/var/run/apache2.pid"
 -D DEFAULT_SCOREBOARD="logs/apache_runtime_status"
 -D DEFAULT_LOCKFILE="/var/run/apache2/accept.lock"
 -D DEFAULT_ERRORLOG="logs/error_log"
 -D AP_TYPES_CONFIG_FILE="/etc/apache2/mime.types"
 -D SERVER_CONFIG_FILE="/etc/apache2/apache2.conf"


Auf dem Server liegen noch mehrere Domänen mittels vhost die alle so funktionieren wie sie sollen.
Nur 2 machen mir hier echt Kopfzerbrechen.

Hier mal die vhosts von der ich spreche. Ich habe die Domain mit example.com ersetzt.

Code: Select all
# 10_syscp_ipandport_xxx.xx.xx.xx.80.conf
# Created 21.08.2010 22:17
# Do NOT manually edit this file, all changes will be deleted after the next domain change at the panel.

NameVirtualHost xxx.xx.xx.xx:80
<VirtualHost xxx.xx.xx.xxx:80>
</VirtualHost>

-----------------------------------

# 20_syscp_normal_vhost_example.com.conf
# Created 21.08.2010 22:17
# Do NOT manually edit this file, all changes will be deleted after the next domain change at the panel.

# Domain ID: 19 - CustomerID: 1 - CustomerLogin: kunde
<VirtualHost xxx.xx.xx.xx:80>
  ServerName example.com
  ServerAlias www.example.com
  ServerAdmin webmaster@example.com
  DocumentRoot "/var/syscp/webs/kunde/example/"
  SuexecUserGroup "kunde" "kunde"
  <Directory "/var/syscp/webs/kunde/example/">
    AddHandler fcgid-script .php .php3 .php4 .php5
    FCGIWrapper /var/syscp/fcgi/kunde/example.com/php-fcgi-starter .php
    FCGIWrapper /var/syscp/fcgi/kunde/example.com/php-fcgi-starter .php3
    FCGIWrapper /var/syscp/fcgi/kunde/example.com/php-fcgi-starter .php4
    FCGIWrapper /var/syscp/fcgi/kunde/example.com/php-fcgi-starter .php5
    Options +ExecCGI
  </Directory>
  Alias /webalizer "/var/syscp/webs/kunde/webalizer"
  ErrorLog "/var/syscp/logs/kunde-error.log"
  CustomLog "/var/syscp/logs/kunde-access.log" combined
</VirtualHost>


Code: Select all
srv:/etc/bind/domains# apache2ctl -t -D DUMP_VHOSTS
VirtualHost configuration:
yyy.yy.yy.yy:80       is a NameVirtualHost
         default server srv.server.de (/etc/apache2/sites-enabled/10_syscp_ipandport_yyy.yy.yy.yy.80.conf:6)
         port 80 namevhost muster.de (/etc/apache2/sites-enabled/10_syscp_ipandport_yyy.yy.yy.yy.80.conf:6)
xxx.xx.xx.xx:80      is a NameVirtualHost
         default server example.com (/etc/apache2/sites-enabled/10_syscp_ipandport_xxx.xx.xx.xx.80.conf:6)
         port 80 namevhost example.com (/etc/apache2/sites-enabled/10_syscp_ipandport_xxx.xx.xx.xx.80.conf:6)
         port 80 namevhost example.com (/etc/apache2/sites-enabled/20_syscp_normal_vhost_example.com.conf:6)
Syntax OK


Das ist nur ein Auszug um mal auf eine Merkwürdigkeit hinzudeuten. Mir ist aufgefallen, dass bei dem vhost
Muster.de noch ein Eintrag default server existiert der auf die Domäne des Rootservers (srv.server.de) zeigt.
Bei example.com ist der default_server die Domäne selber.

Inwiefern das jetzt ausschlaggebend ist kann ich nicht sagen nur das bei den 2 Vhosts wo es nicht geht,
dieser default_server Eintrag auch immer auf die Vhost Domäne zeigt.

Ich habe die Dateien schon Zeile für Zeile mit den funktionierenden verglichen
aber kein Unterschied gefunden. Die DNS Auflösung ist auch korrekt.
www.example.com wie auch example.com lösen auf die selbe IP auf welche auch in der vhost Datei definiert wurden.

Ich komme einfach nicht auf den Ansatz wo ich suchen soll.
Das Log zeigt mir beim Aufruf von example.com (die nicht durch den vhost aufgelöst wird):

[Sun Aug 22 21:29:31 2010] [error] [client xx.xx.xx.xx] File does not exist: /htdocs

Apache.org sagt dazu, dass wenn ein Domainname vom Apache nicht aufgelöst wird dieser
auf sein Fallback zurückgreift bzw. default_vhost (was es hier nicht gibt).
Kompiliert ist es wie oben zu sehen mit -D HTTPD_ROOT=""
Demnach sucht er im Root nach /htdocs was es nicht gibt.

Frage ist also warum zum Teufel wird die Domain nicht aufgelöst der serveralias aber schon?
Ich habe auch mal beides vertauscht also als Servername www.example.com und als Serveralias
example.com aber das selbe Resultat.

Die DNS Zonen habe ich bestimmt schon zig mal geprüft aber alles ist so wie es sein soll.

Wenn der Fehler bei allen vhosts auftreten würde wäre das ja noch plausibel aber nur 2?
Ich hab schon ne Menge Apache hochgezogen aber sowas hatte ich noch nie.

In der /etc/hosts stehen auch nur der Server selber und sein localhost drin.


Falls jemand von euch auch nur ansatzweise einen Tipp hat, wäre ich sehr dankbar.
Last edited by james007 on 23. August 2010 19:38, edited 2 times in total.
james007
 
Posts: 16
Joined: 16. June 2006 17:38

Re: Vhost servername wird nicht aufgelöst

Postby Nobbie » 23. August 2010 11:34

james007 wrote:Falls jemand von euch auch nur ansastzweise einen Tip hat wäre ich sehr dankbar.


Du machst zu viele Flüchtigkeitsfehler (wie auch im Posting selbst):

Code: Select all
<VirtualHost xxx.xx.xx.xxx:80>
</VirtualHost>


Dieser "leere" VirtualHost ist schon mal Käse. Vielleicht ist das der _default_, weil ein ServerName fehlt. Der andere VirtualHost ist noch abenteuerlicher:

Code: Select all
<VirtualHost xxx.xx.xx.xx:80>
  ServerName expample.com
  ServerAlias http://www.example.com


Im ServerName ist ein "p" zuviel, die Domain lautet sicherlich "example.com" und nicht "expample.com". Ganz grausam ist der ServerAlias, da steht eine komplette URL (mit Protokoll http:) anstelle einer Domain, Das führende http:// ist falsch.

Dass da überhaupt irgendwas geht, wundert fast. Außerdem erkennst Du im Listing von Apache, dass es zwei verschiedene conf-Dateien unter sites-enabled gibt, die jeweils auf Zeile 6 einen VirtualHost definieren. Da Du die IPs unlesbar gemacht hast, kann ich dazu nicht mehr sagen.
Nobbie
 
Posts: 13183
Joined: 09. March 2008 13:04

Re: Vhost servername wird nicht aufgelöst

Postby james007 » 23. August 2010 20:08

Nobbie wrote:
Dieser "leere" VirtualHost ist schon mal Käse. Vielleicht ist das der _default_, weil ein ServerName fehlt.


Und genau das war auch des Rätsels Lösung!
Ich habe die Datei einfach gelöscht und den Apache neu gestartet und siehe da es geht.

Diese Datei 10_syscp_ipandport_xxx.xx.xx.xx.80.conf wird von Syscp automatisch angelegt.
Da ist übrigens noch NameVirtualHost xxx.xx.xx.xx:80 mit drin.

Frag mich nicht warum Syscp das so macht. Mich wundert nur, dass es bisher immer einwandfrei funktioniert hat.

Bezüglich des http im Serveralias. Anscheinend fügt der Editor hier automatisch ein http:// ein wenn er eine URL erkennt.

Vielen Dank für den Hinweis hast mir sehr geholfen.
james007
 
Posts: 16
Joined: 16. June 2006 17:38


Return to Apache

Who is online

Users browsing this forum: No registered users and 74 guests