logo der blechtrottel brodaktschns  blechtrottel brodaktschns
English

w3c-validator lokal

installation

  1. Die installation der msi-datei des Apache2 gestaltet sich nicht wirklich schwierig. Verwunderlich ist allerdings, dass dieser browser aus der linux-welt als standard-installationspfad [...]\Apache Group\Apache2 anbietet. Bei der installation (nicht nur) von Linux-anwendungen empfiehlt es sich jedoch, keine verzeichnisnamen mit leerzeichen zu verwenden. Deshalb hat blechtrottel brodaktschns den pfad C:\Web\Apache2 gewählt.
  2. Auch ActivePerl lässt sich als msi-datei ohne probleme installieren. Dabei empfiehlt es sich, dem vorschlag des installers zu folgen und den pfad zur perl.exe in die umgebungsvariable PATH aufzunehmen. Dem grundpaket fehlen allerdings einige module, die das Perl-skript des validators zum laufen braucht. Dazu später mehr. Die installation ließen wir in das verzeichnis C:\Web\Apache2\Perl durchführen.
  3. Der SGML-parser braucht nur entzippt zu werden. Als zielpfad wählten wir C:\Web\Apache2\OpenSP15.
  4. Der validator des W3C und die DTDs stehen als tar.gz zum download bereit. Soweit wir es überprüfen konnten, entsprechen die pakete der aktuellen online-version. (Diese zeilen stammen vom November 2004). Unser validator landete in C:\Web\Apache2\validator

feintuning

  1. Die httpd.conf im ordner conf des Apache2 muss auf die lokalen bedürfnisse abgestimmt werden, wobei wir uns hier nur auf die einstellungen für den validator beziehen. (Tip: der server muss CGI und SSI unterstützen). Gute hinweise lieferte uns die website von Scottish Lass, sodass wir unter einbeziehung der httpd.conf im verzeichnis httpd\conf des validators zu guter letzt bei folgenden einstellungen für den virtual host landeten:
     
    die angepasste http.conf
    Ein listing zum kopieren und einfügen der einstellungen gibt es natürlich auch.
  2. ActivePerl muss mit dem mitgelieferten installationsmanager ppm noch um ein paar module erweitert werden. Als vorarbeit sollte man unter Windows das Perl-skript im ordner validator\httpd\cgi-bin von check (ohne dateiendung) in check.pl umbenennen und die erste zeile des skripts in
    #!perl -w
    ändern. Danach kann das skript in einer DOS-box mit dem befehl (wieder mit unserem beispielpfad)
    perl C:\Web\Apache2\validator\httpd\cgi-bin\check.pl
    aufgerufen werden. Es kommt dabei genau bis zur ersten fehlermeldung wegen eines fehlenden moduls. Dieses kann nun mit dem ppm installiert werden. (Die bedienung des ppm ist in der hilfe von ActivePerl gut beschrieben) Nach erfolgreicher installation kann dann das skript wieder aufgerufen werden, liefert die nächste fehlermeldung usw.
    Manche module werden auf den servern von ActiveState allerdings nicht angeboten. Die blechtrottel brodaktschns mussten das repository der universität winnipeg bemühen und in den ppm integrieren (http://theoryx5.uwinnipeg.ca/ppms/). All diese schritte sind in der hilfe beschrieben. Fehlen dann immer noch erweiterungen, so hilft nur internetrecherche bzw. die unterstützung durch eine Perl-kundige person.
  3. Es ist nicht immer einfach, eine Windows-version des SGML-parsers OpenSP zu bekommen. Auf dessen offiziellen seiten sucht man sie derzeit vergeblich. Sollte eine suche nach Höhrmann und OpenSP keine ergebnisse bringen, so kann sein vorgänger SP verwendet werden. (Obwohl dieser nicht mehr weiter entwickelt wird, funktioniert der validator auch damit noch klaglos.) Das tar.gz-archiv muss zur installation nur unter beibehaltung der ordnerstruktur entpackt werden. Die validierungsbibliotheken (DTDs) des SGML-parsers sollten auf jeden fall durch das neueste paket vom W3C ersetzt werden.
  4. Bleibt zuletzt der validator selbst. Im ordner htdocs\config findet sich die validator.conf, in der die pfade zu den diversen cfg-dateien geändert werden müssen. Achtung: Die datei erwartet normale schrägstriche (forward slashes), also z.b.:
    file://C:/Web/Apache2/validator/htdocs/config/eref.cfg
    Der in der validator.conf vorgegebene dritte schrägstrich nach file:// gehört übrigens zum Unix-pfad, unter Windows kommen vor dem laufwerksbuchstaben also nur zwei (s.o.)!
    Das skript selbst hat auch noch ein paar hürden für den Windows-anwender parat. Perl-handarbeit ist vonnöten. In zeile 100 muss der validator erst einmal seine konfigurationsdatei finden:
    $CFG = &read_cfg('C:/Web/Apache2/validator/
    htdocs/config/validator.conf');

    (Im original wieder ohne jeden zeilenumbruch) In den zeilen 613ff wird der aufruf des SGML-parsers zusammengestellt. Dabei wird die option -R verwendet, die nicht funktioniert. Diese zeile (614) muss deshalb ersatzlos gestrichen werden.
    In zeile 752 sucht das skript mittels regular expression nach einem C in der rückgabe des parsers. Dazu wird der ausdruck /^C$/ verwendet, was soviel bedeutet wie: ein C direkt nach dem zeilenbeginn und vor dem zeilenende. Unter Windows/DOS folgt auf das C aber ein zeilenumbruch (CR, LF), sodass der ausdruck auf /^C\s*$/ abgeändert werden muss, um zum gewünschten erfolg zu führen.
    Ab zeile 1692 holt das skript aus der rückgabe des parsers noch den relevanten teil für die ergebnisseite heraus. Der parser trennt seine rückgaben durch doppelpunkte, folglich teilt das skript die entsprechende zeile an diesen. In dieser zeile findet sich aber auch der komplette pfad zur überprüften datei. Ein Windows-pfad enthält zum unterschied von Linux doppelpunkte nach dem laufwerksbuchstaben, somit wird die rückgabe einmal zu oft geteilt und bringt das skript zum versagen. Es empfiehlt sich daher, vor dem trennen an den doppelpunkten den doppelpunkt im pfad durch ein anderes zeichen zu ersetzen. So sieht daher eine vor den split eingefügte zeile 1705 bei blechtrottel brodaktschns aus:
    s,:(\\|/),-$1,g;
    Grundsätzlich wäre es möglich, den pfad danach wieder in ordnung zu bringen, sprich aus dem - wieder einen : zu machen. Da das skript aber nirgends mehr auf diesen pfad zugreift, haben wir darauf verzichtet. Auch könnte man den zerstückelten pfad zu einem teil zusammen fügen und auf die zeichenersetzung verzichten; wir ziehen aber die methode quick und dirty vor. Perl-profis können sich ja spielen :-)

weiterTeil1 - Teil2 - Teil3

zur homepage eine ebene hinauf zum seitenanfang 11.12.2006