簡潔です。
- Another HTML-lint だけ導入して、
本家の W3C MarkUp Validation Service を導入しないわけは無いでしょう!
- イントラネット(家庭内 LAN or 社内 LAN) でサービスしたい
以上のような希望を持つ人は入れましょう。
社内に正しい HTML と W3C を啓蒙するための第一歩でもあるかもしれません。
http://validator.w3.org/source/
上記 URL で W3C MarkUp Validation Service に必要なものを確認すると、
- OpenSP (ver1.5 以上)
- CVS (validator 本体を取得するため)
- 以下の Perl ライブラリ
- CGI.pm (ver2.81 以上)
- HTML-Parser (ver3.25 以上)
- libwww-perl (ver5.60 以上)
- Set-IntSpan
- Text-Iconv
- URI
と記述されていますが、これらだけでは足りませんでした。
調査方法などは別途記述することにして、必要なもののサマリーは以下のとおりです。
- OpenSP
↑ ver1.4 ですが ver1.5 が make できないので、
このバイナリをインストールするしかありません・・・。
- CVS ← Cygwin 標準のバイナリを使用します。
- 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 です。
サイトには 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 を用いて、ソースやコンフィグなどを取得します。
以下のとおりに実行しましょう。
$ 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 ← ファイルパスを修正
以上で、W3C MarkUp Validation Service の環境が整いました。
後は Apache を設定して、Web から使えるようにすれば完了です。
/w3c-validator/ からアクセスするようにするには、
以下のとおりに設定を加えれば OK です。
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>
W3C の Validator はインストール時に相当苦労しました。
私の方法を参考にして、
「このとおりやったけど動かないっ!」
って言うこともあると思いますので、
私の問題解決手法を簡単に記述しておきます。
動かないときは調査方法の参考にしてください。
- とりあえず Perl のライブラリが正当か疑いましょう。
'perl /usr/local/validator/htdocs/check'
'perl /usr/local/validator/htdocs/checklink.pl'
を実行してみて、エラーが出たらエラーに従いましょう。
- /etc/w3c/validator.conf の設定も確認しましょう。
- check checklink.pl がコマンドラインで動くようなら、
あとは Apache の設定を疑いましょう。
Apache では SSI と CGI を許可する必要があります。
- とりあえず /var/log/ 配下の Apache のログは見ましょう