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.