W3C HTML Validator lokal installieren

Um HTML Dokumente verläßlich auf ihre Richtigkeit gegenüber dem verwendeten HTML Standard zu überprüfen, bietet das World Wide Web Consortium den W3C HTML Validation Service an. Unter den Bedingungen des W3C Software Copyrights kann man den Validator downloaden und auf dem eigenen Rechner installieren.

Benötigte Software

Konfiguration des Webservers

Am besten ist es, wenn man für den Validator einen sog. Virtuellen Host einrichtet. Dafür muß der Webserver über einen Domainnamen erreichbar sein und der Validator ebenfalls einen bekommen. Hierzu wird normalerweise ein Eintrag in der hosts Datei notwendig. Die Datei befindet sich unter Linux in /etc/, unter Windows NT in %windir%\system32\drivers\etc\ und unter Windows 9x im Windows Verzeichnis, heißt aber hosts.sam und muß in hosts umbenannt werden.

In der hosts Datei muß man jetzt eintragen, welche Domainnamen für den Webserver und den Validator benutzt werden sollen. Bei mir sieht das so aus:

127.0.0.1 www.myserver.de
127.0.0.1 validator.myserver.de

127.0.0.1 ist die IP Adresse des Rechners an dem man gerade arbeitet, www.myserver.de soll der normale Webserver werden, validator.myserver.de ist der Domainname für den Validator. Man kann natürlich die Namen auch gänzlich anders wählen, man sollte nur aufpassen, das es die Domain noch nicht gibt, denn sonst kann man später nicht mehr darauf zugreifen.

Jetzt muß der Webserver selber konfiguriert werden. Bei Apache muß man dazu die Datei httpd.conf bearbeiten. Diese findet man im conf Unterverzeichnis von Apache. Die folgenden Einträge sollte man seinen Wünschen entsprechend ändern:

ServerName www.myserver.de
DocumentRoot "c:/myserver/"

Die folgenden Zeilen müssen an die httpd.conf Datei angefügt werden. Der Einfachheit zuliebe nehme ich an, daß das Tar Archiv mit dem Validator nach C:\Apache\Validator\ entpackt wurde.

NameVirtualHost 127.0.0.1
<VirtualHost 127.0.0.1:80>
    DocumentRoot c:/myserver/
    ServerName www.myserver.de
</VirtualHost>

<VirtualHost 127.0.0.1:80>
    DocumentRoot C:/Apache/Validator/htdocs/
    ServerName validator.myserver.de
</VirtualHost>

<Directory C:/Apache/Validator/htdocs>
  Options Indexes FollowSymLinks MultiViews
  AllowOverride None
</Directory>

<Directory C:/Apache/Validator/httpd/cgi-bin>
  AllowOverride None
  Options ExecCGI
</Directory>

ScriptAlias /check C:/Apache/Validator/httpd/cgi-bin/check

Auch hier müssen Domainnamen und Pfade natürlich angepasst werden. In C:\myserver\ befinden sich die Dateien, die später über http://www.myserver.de/ erreicht werden sollen.

Für weitere Informationen zur Konfiguration von Apache sollte man ein Blick in die Dokumentation werfen. Wer statt Apache lieber OmniHttpd benutzen möchte, findet hier eine Anleitung, wie man die virtuellen hosts einrichtet.

Konfiguration des Validators

Die Änderungen müssen am 'check' Script vorgenommen. Dieses findet man in httpd/cgi-bin/ Verzeichnis; C:/Apache/Validator/httpd/cgi-bin/check um sich an das obige Beispiel zu halten. Die wichtigen Einträge müssen wie folgt geändert werden:

Alt: my $base_path = '/usr/local/src/validator/';
 --> my $base_path = 'C:/Apache/Validator/'
Alt: my $temp      = "/tmp/validate.$$";
 --> my $temp      = $ENV{TEMP}|$ENV{TMP}."/validate.$$";
Alt: my $sp        = '/usr/local/bin/nsgmls';
 --> my $sp        = 'C:/Sp/bin/nsgmls.exe';

Und ein wenig später im Script die Zeile

delete $ENV{PATH};

löschen.

Wie immer müssen die Pfade angepasst werden. C:\Sp ist das Verzeichnis, in das James Clark's SGML Parser installiert wurde.

Windows 9x Benutzer müssen noch die beiden Zeilen

$command  = "$codeconv $sp -E0 $xmlflags $catalog $decl";
open( CHECKER, "| $command - >$temp.esis 2>$temp" )

in

$command  = "$codeconv $sp -f$temp -E0 $xmlflags $catalog $decl";
open( CHECKER, "| $command - >$temp.esis" )

ändern.

Wenn man jetzt den Webserver startet, kann man den Validator über http://validator.myserver.de/ erreichen und benutzen.

Geht das nicht auch einfacher?

Ja :-) Liam Quinn hat den HTML Validator der Web Design Group in eine Windows Anwendung integriert die man unter http://arealvalidator.com downloaden kann. Allerdings muß man den nach einer 30 tägigen Testphase registrieren lassen, sprich, dafür zahlen.

Wenn der Validator unzählige Fehler bemängelt

... sollte man seine HTML Dokumente mal von HTML Tidy generalüberholen lassen.

Links zum Thema