Instale o validador de marcação wc3 localmente

6

Como instalar e usar o w3c markup validator no Ubuntu 13.10 localmente? Eu sei que posso instalá-lo instalando os seguintes pacotes:

sudo apt-get install libapache2-mod-perl2   
sudo apt-get install w3c-markup-validator

mas como posso configurá-lo para usá-lo da mesma forma que a versão on-line (ou seja, pelo navegador da web), mas localmente?

    
por Rafal 24.05.2014 / 16:23

2 respostas

5

Boas notícias! Então, se você já tem o apache2 instalado, você instala o W3C Validator e o Perl:

sudo apt-get install w3c-markup-validator libapache2-mod-perl2

O problema é que o pacote w3c-markup-validator não foi atualizado para instalar corretamente no 13.10+ (estou no dia 14.04). Para corrigi-lo manualmente:

sudo ln -s /etc/w3c/httpd.conf /etc/apache2/conf-enabled/w3c-markup-validator.conf

Eu tive um problema em que /usr/lib/cgi-bin não tinha as permissões corretas. Isso ocorre devido a um problema em /etc/apache2/conf-available/serve-cgi-bin.conf , em que só será concedida a permissão correta se o módulo estiver sendo carregado. Parece que esta versão do perl não está listada na instrução IfModule. Para corrigir isso:

sudo gedit /etc/apache2/conf-available/serve-cgi-bin.conf

Você quer que fique assim:

<IfModule mod_alias.c>
    <IfModule mod_cgi.c>
        Define ENABLE_USR_LIB_CGI_BIN
    </IfModule>

    <IfModule mod_cgid.c>
        Define ENABLE_USR_LIB_CGI_BIN
    </IfModule>

    <IfModule mod_perl.c>
        Define ENABLE_USR_LIB_CGI_BIN
    </IfModule>

    <IfDefine ENABLE_USR_LIB_CGI_BIN>
        ScriptAlias /cgi-bin/ /usr/lib/cgi-bin/
        <Directory "/usr/lib/cgi-bin">
            AllowOverride None
            Options +ExecCGI -MultiViews +SymLinksIfOwnerMatch
            Require all granted
        </Directory>
    </IfDefine>
</IfModule>

# vim: syntax=apache ts=4 sw=4 sts=4 sr noet

Depois de concluir estas etapas, você terá que vincular o diretório HTML do validador a / var / www / html:

sudo ln -s /usr/share/w3c-markup-validator/html /var/www/html/w3c-validator 

Quando o arquivo estiver vinculado e as alterações estiverem em vigor, tudo o que você precisa fazer é reiniciar o servidor Apache:

sudo service apache2 restart

Verifique se tudo está funcionando

http://localhost/w3c-validator

O CSS pode estar faltando na página do validador no navegador, mas a validação deve funcionar bem.

    
por Skarard 25.05.2014 / 21:43
0

Após a aplicação da resposta de @ Skarard, o W3CValidator apareceu, mas a verificação não funcionou. Houve erros em /var/log/apache2/error.log

  AH01337: Could not parse expr "$QUERY_STRING = /(^|[;&])debug(=[^0]?)?(\b|$)/" in /usr/share/w3c-markup-validator/html/header.html: Parse error near '$'
  AH01337: Could not parse expr "$includeJS = 1" in /usr/share/w3c-markup-validator/html/header.html: Parse error near '$'
  AH01337: Could not parse expr "$debug = 1" in /usr/share/w3c-markup-validator/html/header.html: Parse error near '$'
  AH01337: Could not parse expr "$feeds = 1" in /usr/share/w3c-markup-validator/html/header.html: Parse error near '$'

Então eu descobri que o arquivo validator.conf estava apontando para um local de esquema errado. Houve uma sobra de validator.conf.dpkg-dist

/etc/w3c# diff validator.conf validator.conf.dpkg-dist 
42c42
<     Library = /usr/share/xml/xhtml/schema/dtd
---
>     Library = /usr/share/xml/w3c-sgml-lib/schema/dtd
57c57
< Allow Private IPs = yes
---
> Allow Private IPs = no
75c75
<   Allow = http
---
>   Allow = data,ftp,http,https
118,123d117
< 
< #
< # Source for the "Tip of The Day" blurbs.
< <Tips>
<   Include tips.cfg
< </Tips>

Mudei o validator.conf.dkpk-dist para validator.conf e reiniciei o apache. As mensagens de erro em /var/log/apache2/error.log ainda estavam lá.

O uso do Apache 2.4 parece ser o motivo descrito em link ) então eu tive que adicionar

SSILegacyExprParser On

para o arquivo w3c-markup-validator.conf.

    
por Wolfgang Fahl 13.04.2016 / 07:31