Categorie
No Categoria

Installare W3C XHTML Validator 1.0 su Ubuntu

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/ .