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
- Einen CGI fähigen Webserver wie Apache (Version 1.3 und höher), auf dessen Konfiguration ich im weiteren auch eingehe.
- Perl (Version 5.004, besser 5.005 und höher), bzw. ActivePerl wenn man den Validator unter Windows installieren möchte.
- James Clark's SGML Parser SP, der die Hauptarbeit des Validators verrichtet.
- Und natürlich den Validator selber, den man sich als Tar Archiv downloaden kann. Windows Benutzer können das Archiv z.B. mit WinZip entpacken.
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.