Update 16/06/11: aggiornata la guida per Natty Narwhal
Il W3C Validator è un programma che consente di controllare se il codice (X)HTML delle proprie pagine è valido e rispetta gli standard. Nasce come servizio web gratuito, ma può risultar comodo e molto più rapido installarlo sulla propria macchina per utilizzarlo in locale (magari offline), o all’interno della propria LAN.
Ubuntu Linux contiene all’interno dei propri repository il pacchetto w3c-markup-validator, ma purtroppo è una versione decisamente vecchia, la 0.7.4 (su Lucid Lynx), mentre l’attuale 1.0 è molto più piacevole esteticamente, e funziona molto bene.
Ecco quindi un tutorial per installarlo sulla nostra Ubuntu box.
Installiamo le dipendenze, aprendo un terminale e dando:
sudo apt-get install opensp libosp-dev libapache2-mod-perl2 mercurial apache2 libjson-perl libxml-libxml-perl
Scarichiamo i sorgenti dal repository di sviluppo Mercurial:
hg clone http://dvcs.w3.org/hg/markup-validator/
Ora installiamo i moduli di Perl richiesti:
sudo perl -MCPAN -e "install Bundle::W3C::Validator"
Partirà una configurazione, armatevi di pazienza, date sempre invio, eccetto quando chiede continente e nazione (utilizzati per utilizzare i server più vicini). Quando avrà finito, perl si chiuderà automaticamente, mostrandovi il prompt.
cd markup-validator sudo mkdir -p /usr/local/validator sudo cp -R htdocs httpd/cgi-bin share /usr/local/validator/ sed "s/w3c-validator/validator/" httpd/conf/httpd.conf > validator.conf sudo mv validator.conf /etc/apache2/conf.d/ sudo mkdir -p /etc/w3c sudo cp /usr/local/validator/htdocs/config/* /etc/w3c/
Ora dobbiamo modificare la configurazione per permettere al validatore di validare anche pagine locali (non solo sul web):
sudo gedit /etc/w3c/validator.conf
Andiamo a riga 57, e modifichiamo la riga così:
Allow Private IPs = yes
Salviamo e chiudiamo gedit.
UPDATE: con il mod_perl2 abilitato in Apache, sembra che ci sia un bug che non permette di parsare gli url. La soluzione è disabilitarlo con il questo procedimento:
Modifichiamo il file di configurazione del validator per Apache:
sudo gedit /etc/apache2/conf.d/validator.conf
Commentiamo attorno a riga 38 tutto questo (mettendo un # all’inizio di ogni riga):
<IfDefine MODPERL2> # Note: this affects the whole server, not just the validator. PerlSwitches -T </IfDefine>
e anche attorno a riga 46, tutto questo:
<IfDefine MODPERL2> SetHandler perl-script PerlResponseHandler ModPerl::Registry PerlOptions +ParseHeaders </IfDefine>
Salviamo e chiudiamo gedit.
Torniamo al nostro terminale:
sudo a2enmod expires sudo a2enmod include sudo a2enmod proxy
Riavviamo il webserver apache:
sudo apache2ctl graceful
Ecco il nostro validator ora disponibile all’indirizzo http://localhost/validator/ .