戻る

Cygwinで便利!

W3C MarkUp Validation Service は
基本的に SSI と CGI (Perl) で出来てますので、
Perl が新しいほうが動作しやすいと思います。
そして Cygwin のバージョンが新しいほど、
Perl 関連全般が新しいことが期待できるため、
Cygwin が新しければ新しいほど動作させるのは簡単でしょう(多分)
そういうわけですので、動作チェック及び実装は、
ある程度古い Cygwin のバージョンで、かつ "私が思う安定バージョン" の
Cygwin 1.3.12 で行いました。

時間が取れ次第、最新の Cygwin で動作チェックを行う予定ですが、
現時点では Cygwin 1.3.12 のみ動作確認が出来ています。
また、このページでの作業は Administrators に所属しているユーザで
行うことを想定しています。
# Another HTML-lint と同じ文書(汗)
戻る

W3C MarkUp Validation Service を使う

なぜ W3C MarkUp Validation Service を使うのか

簡潔です。
  1. Another HTML-lint だけ導入して、
    本家の W3C MarkUp Validation Service を導入しないわけは無いでしょう!
  2. イントラネット(家庭内 LAN or 社内 LAN) でサービスしたい

以上のような希望を持つ人は入れましょう。
社内に正しい HTML と W3C を啓蒙するための第一歩でもあるかもしれません。

必要な環境の準備 (index)

http://validator.w3.org/source/
上記 URL で W3C MarkUp Validation Service に必要なものを確認すると、


と記述されていますが、これらだけでは足りませんでした。
調査方法などは別途記述することにして、必要なもののサマリーは以下のとおりです。
# ライブラリの名称が最新版へのリンクで、
# その右に書いてあるバージョンが今回使用したものです


必要な環境の準備 (Perl ライブラリ)

最初に一番大変なところを片付けてしまいましょう。
Perl ライブラリを全部いれちゃいましょう。
ひとつ上のサマリーからソースをダウンロードしておいてください。
インストールは以下のとおりです。
大変なので p(^_^)q ガンバって〜☆


CGI.pm
$ tar zxvf CGI.pm.tar.gz
$ cd CGI.pm-2.91
$ perl Makefile.PL
$ make
$ make test
$ make install
$ cd /usr/lib/perl5/5.6.1/cygwin-multi
$ mv CGI `date "+%Y%m%d"`_CGI
$ mv CGI.pm `date "+%Y%m%d"`_CGI.pm
標準で CGI.pm が入っていて、
そちらのほうがライブラリの検索順が早いので、
最後に標準でインストールされている CGI.pm のリネームを実施してます。

URI
$ tar zxvf URI-1.23.tar.gz
$ cd URI-1.23
$ perl Makefile.PL
$ make
$ make test
$ make install

MIME-Base64
$ tar zxvf MIME-Base64-2.16.tar.gz
$ cd MIME-Base64-2.16
$ perl Makefile.PL
$ make
$ make test
$ make install

HTML-Tagset
$ tar zxvf HTML-Tagset-3.03.tar.gz
$ cd HTML-Tagset-3.03
$ perl Makefile.PL
$ make
$ make test
$ make install

HTML-Parser
$ tar zxvf HTML-Parser-3.27.tar.gz
$ cd HTML-Parser-3.27
$ perl Makefile.PL
$ make
$ make test
$ make install

libnet
$ tar zxvf libnet-1.13.tar.gz
$ cd libnet-1.13
$ perl Makefile.PL → コンフィグは上書きしない
$ make
$ make test
$ make install

Digest-MD5
$ tar zxvf Digest-MD5-2.23.tar.gz
$ cd Digest-MD5-2.23
$ perl Makefile.PL
$ make
$ make test
$ make install

libwww-perl
$ tar zxvf libwww-perl-5.69.tar.gz
$ cd libwww-perl-5.69
$ perl Makefile.PL → 以下のように入力する
Do you want to install the GET alias? [y] y
Do you want to install the HEAD alias? [y] n
Do you want to install the POST alias? [y] n
$ make
$ make test
$ make install
上記のように入力しないとエラーで make install できないです・・・。

Set-IntSpan
$ tar zxvf Set-IntSpan-1.07.tar.gz
$ cd Set-IntSpan-1.07
$ perl Makefile.PL
$ make
$ make test
$ make install

Text-Iconv
$ tar zxvf Text-Iconv-1.2.tar.gz
$ cd Text-Iconv-1.2
$ patch < text-iconv_patch.txt
$ perl Makefile.PL
$ make
$ make test
$ make install
パッチに関しての参考サイトは以下のとおり。
http://sources.redhat.com/ml/cygwin/2002-08/msg01355.html http://sources.redhat.com/ml/cygwin/2002-08/msg01384.html

Config-General
$ tar zxvf Config-General-2.15.tar.gz
$ cd Config-General-2.15
$ perl Makefile.PL
$ make
$ make test
$ make install

HTML-Template
$ tar zxvf HTML-Template-2.6.tar.gz
$ cd HTML-Template-2.6
$ perl Makefile.PL
$ make
$ make test
$ make install

Time-HiRes
$ tar zxvf Time-HiRes-1.42.tar.gz
$ cd Time-HiRes-1.42
$ perl Makefile.PL
$ make
$ make test
$ make install

# この異常な数のライブラリのインストールは相当疲れますが、
# こんなことであきらめずに、意地になって頑張りましょう (-_-;;
# ちなみに私は依存関係まで調べながらやったので泣きそうでした・・・

必要な環境の準備 (OpenSP)

次は OpenSP です。
サイトには ver1.5 以降が必要と書いてありますが、
どうがんばっても私の能力では make できませんでした。
make 出来た人はその方法を教えてください・・・。
とりあえず、ためしに入れた ver1.4 で動作しているのでその方法を記述します。

先に記述したサマリーの部分から、
バイナリ (cygwin1.1.8-openjade1.3p-sp1.4.tar.gz) を取得したら、
'/' でそれを展開するだけです。
一応、説明サイト ↓
http://ourworld.compuserve.com/homepages/hoenicka_markus/cygx1015.html


ちなみに、本家の OpenSP のサイトは以下の URL です。
http://openjade.sourceforge.net/

必要な環境の準備 (CVS)

最後に CVS を準備します。
これは Cygwin 標準で準備されているので、
Cygwin の setup.exe からインストールしてください。

W3C MarkUp Validation Service のインストール

やっと、目的のもののインストールです。
CVS を用いて、ソースやコンフィグなどを取得します。
以下のとおりに実行しましょう。
# インストールディレクトリが /usr/local 配下でないと
# 追加の設定が発生しますので /usr/local をおすすめします。


$ cd /usr/local/
$ CVSROOT=":pserver:anonymous@dev.w3.org:/sources/public"
$ export CVSROOT
$ cvs login
(Logging in to anonymous@dev.w3.org)
CVS password: anonymous
$ cvs get validator

ソースや設定ファイルの取得が完了したら、ファイル郡の配置と設定を行います。
以下のとおりに実行してください。
$ cd /usr/local/validator/htdocs
$ cp -R config /etc/w3c
↑cvs によってコンフィグが上書きされないように、
シンボリックリンクよりはコピーのほうがいいと思います。
$ cd /usr/local/validator/httpd/cgi-bin
$ ln -s check /usr/local/validator/htdocs/check
$ ln -s checklink.pl /usr/local/validator/htdocs/checklink.pl

残るは設定だけです。
/etc/w3c/validator.conf を開いて、対応する部分を以下を参考に修正してください
Maintainer      = k-square@yotta-zetta.com  ← 自分のメールアドレス
Home_Page       = http://192.168.1.1/w3c-validator/  ← IPアドレスの部分を修正
Msg_FAQ_URI     = ${Home_Page}docs/errors.html
Element_Ref_URI = http://www.htmlhelp.com/reference/html40/
SGML_Library    = /usr/local/validator/htdocs/sgml-lib  ← ファイルパスを修正
SGML_Parser     = /usr/local/bin/onsgmls  ← ファイルパスを修正

Apache の設定 (httpd.conf)

以上で、W3C MarkUp Validation Service の環境が整いました。
後は Apache を設定して、Web から使えるようにすれば完了です。
/w3c-validator/ からアクセスするようにするには、
以下のとおりに設定を加えれば OK です。
# もちろん設定後に Apache の再起動が必要です
Alias   /w3c-validator/         /usr/local/validator/htdocs/
<Directory "/usr/local/validator/">
        <IfModule mod_mime.c>
                AddHandler           server-parsed .html
                AddCharset           utf-8         .html
        </IfModule>
        Options Includes None
        AllowOverride None
        Order Allow,Deny
        Allow from all
</Directory>
<LocationMatch "/w3c-validator/check(link)?">
        SetHandler           cgi-script
        Options ExecCGI FollowSymLinks None
</LocationMatch>

mod_limitipconn を Apache に組み込んだ人は、
以下のコンフィグも入れたほうが良いでしょう。
<IfModule mod_limitipconn.c>
        <Location /w3c-validator>
                # 最大接続数制限なし
                MaxConnPerIP 0
        </Location>
</IfModule>

実際に使う

以上ですべて完了です。
お疲れ様でした。

http://127.0.0.1/w3c-validator/

などから W3C MarkUp Validation Service を使えるようになっているはずです☆
活用して、より良い HTML を書くようにしましょう!!

動かないときは・・・ (番外編)

W3C の Validator はインストール時に相当苦労しました。
私の方法を参考にして、
「このとおりやったけど動かないっ!」
って言うこともあると思いますので、
私の問題解決手法を簡単に記述しておきます。
動かないときは調査方法の参考にしてください。

  1. とりあえず Perl のライブラリが正当か疑いましょう。
    'perl /usr/local/validator/htdocs/check'
    'perl /usr/local/validator/htdocs/checklink.pl'
    を実行してみて、エラーが出たらエラーに従いましょう。
  2. /etc/w3c/validator.conf の設定も確認しましょう。
  3. check checklink.pl がコマンドラインで動くようなら、
    あとは Apache の設定を疑いましょう。
    Apache では SSI と CGI を許可する必要があります。
  4. とりあえず /var/log/ 配下の Apache のログは見ましょう
Valid XHTML 1.0 Strict Valid CSS!
戻る