EDV-Beratung K. H. Meyer

Linux / Apache Webserver / Virtual Hosts

Wie kann ich meine Sites auf einem Linux-PC, insbesondere CGI-Scripts, testen und dabei meinen Provider simulieren? Auf den Linux-Rechner möchte ich über eine Netzwerkverbindung und Windows 95/98 zugreifen.

Dies geht durch Einrichten von Virtual Hosts. Wichtige Vorarbeit ist das Einrichten einer entsprechenden Zahl von Netzwerkadress-Aliases (mehrere IP-Adressen für eine Netzwerkkarte) und der DNS-Angaben. Angenommen der Linux-Rechner hat die Adresse 192.168.1.1 an eth0 und 'hört' auf den Namen linux.local.de und es sollen zwei www's 'www.harald-meyer.de' und  'www.meyer-edv.de' eingerichtet werden:

1. Netzwerkalias:

route add -net 192.168.1.0 netmask 255.255.255.0 eth0
ifconfig eth0:0 192.168.1.2 netmask 255.255.255.0
ifconfig eth0:1 192.168.1.3 netmask 255.255.255.0

(Siehe auch NET-2-HOWTO)

Zum Autostart bei Suse am einfachsten ans Ende der Datei /sbin/init.d/rc (V7.2: /etc/init.d/rc)  hängen. Bei anderen Distributionen heißt die Datei evtl rc.local und befindet sich in einem anderen Verzeichnis

2. DNS konfigurieren

/etc/HOSTNAMElinux/etc/hosts

127.0.0.1      localhost             loopback
192.168.1.1    linux.local.de        linux
192.168.1.10   harald                harald
192.168.1.2    www.harald-meyer.de   harald-meyer.de
192.168.1.3    www.meyer-edv.de      meyer-edv.de 
  

(harald ist der Windows-PC)

/etc/resolv.conf

search local.de
nameserver 192.168.1.1

/etc/named.conf

options {
    directory "/var/named";
    check-names master warn;
    pid-file "/var/run/named.pid";
    datasize default;
    stacksize default;
    coresize default;
    files unlimited;
    recursion yes;
    multiple-cnames no;
};

zone "." IN {
type hint;
file "root.hint";
};

zone "localhost" IN {
    type master;
    file "localhost.zone";
    check-names fail;
    allow-update { none; };
};

zone "0.0.127.in-addr.arpa" IN {
    type master;
    file "127.0.0.zone";
    check-names fail;
    allow-update { none; };
};

zone "de" {
    type master;
    file "/var/named/de.hosts";
    notify no;
    check-names fail;
    };

zone "1.168.192.in-addr.arpa" {
    type master;
    file "/var/named/192.168.1.rev";
    check-names fail;
    };

/var/named/de.hosts

de.           IN        SOA    linux. harry.harald-meyer.de. (
                    2000040113
                    10800
                    3600
                    432000
                    38400 )
linux.de.    IN       NS            linux.local.de.
www.harald-meyer.de.  IN    A       192.168.1.2
www.meyer-edv.        IN    A       192.168.1.3
linux.local.de.       IN    A       192.168.1.1
harald-meyer          IN    CNAME   www.harald-meyer.de.
meyer-edv             IN    CNAME   pwww.meyer-edv.de.

(Keine Leerzeichen, nur Tabs!)

/var/named/192.168.1.rev


1.168.192.in-addr.arpa.    IN    SOA   linux. harry.harald-meyer.de. (
            2000040105
            10800
            3600
            432000
            38400 )
1.168.192.in-addr.arpa.    IN    NS    linux.
1.1.168.192.in-addr.arpa.  IN    PTR   linux.local.de.
2.1.168.192.in-addr.arpa.  IN    PTR   www.harald-meyer.de.
3.1.168.192.in-addr.arpa.  IN    PTR   www.meyer-edv.de.

3. Apache konfigurieren

(Die wichtigsten Änderungen/Einträge in /etc/httpd.conf)

ServerType standalone
ServerName linux.local.de


<VirtualHost 192.168.1.2>
ServerAdmin webmaster@harald-meyer.de
DocumentRoot /usr/local/httpd/www.harald-meyer.de
ServerName www.harald-meyer.de
ErrorLog /usr/local/httpd/www.harald-meyer.de/logs/error.log
ScriptAlias /cgi-bin/ /usr/local/httpd/www.harald-meyer.de/cgi-bin/
</VirtualHost>

<VirtualHost 192.168.1.3>
ServerAdmin webmaster@meyer-edv.de
DocumentRoot /usr/local/httpd/www.meyer-edv.de
ServerName www.meyer-edv.de
ErrorLog /usr/local/httpd/www.meyer-edv.de/logs/error.log
ScriptAlias /cgi-bin/ /usr/local/httpd/www.meyer-edv.de/cgi-bin/
</VirtualHost>

CGI-Scripts müssen im Unix-Format vorliegen (keine CR+LFs am Zeilenende)

4. Windows konfigurieren

Unter Systemsteuerung/Netzwerk TCP->>Netzwerkkarte/Eigenschaften wählen und DNS einschalten. 

Domäne bei diesem Beispiel wäre linux.local.de und bei Suchreihenfolge und bei Host 192.168.1.1 hinzuzufügen. Als Host tragen Sie den Namen Ihres Windows-PC ein, Domäne kann leer bleiben, in der Suchreihenfolge für DNS-Server wird für dieses Beispiel 192.168.1.1 angegeben und als Reihenfolge für Domänensuffix 'de'.

Die angegebenen Lösungsvorschläge und Tipps entstammen größtenteils unserer Praxis. Es kann aber keine Gewähr übernommen werden. Eine Haftung für Schäden, die eventuell aus der Anwendung entstehen, wird nicht übernommen.