Local W3C HTML5 Validator Server
Published: 27-12-2013 | Author: Remy van Elst | Text only version of this article
Table of Contents
This tutorial shows you how to set up a local instance of thew3c html validator, including HTML5 validation support via a local instance ofthe Validator.nu HTML5 validator. The online w3 validator has strict limits andwill ban you for some time if you validate to often. So if you for example havea local unit test to check a website you will get banned a lot. Which isunderstandable of course, it is a free service. They provide all source codeplus it is in the debian repositories, it is dead simple to set up one yourself.
I've used Ubuntu 13.10 because that has the latest w3 test (1.3). If you useUbuntu 12.04 LTS and you want the latest version you can install the twopackages (
w3c-sgml-lib) from the raringrepositories (13.04), that works just fine.
- Installing required packages
- Compiling / Installing HTML5 Validator.nu
- Configuring the w3c-validator
- Upstart script for the HTML5 validator
Installing required packages
Install all required packages:
apt-get install w3c-markup-validator mercurial subversion python default-jdk
This will install everything required for the w3 validator and for the HTML 5one (that is Java). It will also pull down Apache. After the install finishedyou can reach your validator already at
http://server.ext/w3c-validator.However, it is not yet configured for HTML5 validation, which is kinda requiredfor todays web.
Compiling / Installing the HTML5 Validator.nu
The W3 validator itself does not do HTML5 validation. It does support usingexternal services to do it, and we are going to do it with the HTML5 validatorfrom http://validator.nu.
Create a folder:
mkdir /usr/share/html5-validator cd /usr/share/html5-validator
Clone the latest validator source:
hg clone https://bitbucket.org/validator/build build
Start the build:
python build/build.py all
If you encounter a Java exception, run the build script again. I had to do itthree times:
python build/build.py all
If it all works after a few tries, the validator runs at
Kill it with CTRL+C and continue reading. We first configure the W3 validatorand then create an upstart script for the Validator.nu one.
Configuring the w3c-validator
I need to validate hosts in private networks, so I changed the below option in
Allow Private IPs = yes
Enable the HTML5 validator by uncommenting the following:
<External>## Enable checking documents via external services.## The example config below assumes that you have installed the validator.nu## engine on the same machine as the markup validator.## See http://about.validator.nu/ for installation instructions.HTML5 = http://localhost:8888/html5/#CompoundXML = http://localhost:8888/</External>
Upstart script for HTML5 validator
Create the upstart script to start the HTML5 validator at boot:
description "Validator.nu HTML5 Validator"start on (local-filesystems and net-device-up)stop on runlevel chdir /usr/share/html5-validatorexec python build/build.py --control-port=8889 runrespawn
Save and start it:
Afterwards you can access your validator via
http://server/w3c-validator. Itsupports the HTML5 validator from there, but you can also access it directly at
The validator.nu service is running as root and there are no limits on bothvalidators. Make sure you only run it on a trusted network, or properly secureit.Tags: html, html5, tests, tutorials, validation, validator, w3, w3c