戻る

Cygwinで便利!

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

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

Another HTML-lint を使う

なぜ Another HTML-lint を使うのか

Another HTML-lintは公開されており、
上記の URL から使用すればいいので、大抵の人ははわざわざ導入する必要はありません。
なのにわざわざ導入しようとするのは、
  1. The Internet にコンテンツを公開する前にチェックしたい
  2. イントラネット(家庭内 LAN or 社内 LAN) でサービスしたい
という希望があるためです。
多分(笑)、便利なので暇だったらとりあえず入れてみましょう!
ちなみに、社内に正しい HTML を啓蒙するための第一歩でもあるかもしれません。

必要な環境の準備 (index)

http://openlab.ring.gr.jp/k16/htmllint/download.html
上記 URL で Another HTML-lint に必要なものを確認すると、
と記述されていますのでこれらのライブラリを準備するのが最初です。

必要な環境の準備 (Jcode.pm)

まずは Jcode.pm から準備しましょう。
以下の URL からソースを取得してください。

http://openlab.ring.gr.jp/Jcode/index-j.html

Jcode-0.82.tar.gz をダウンロードしたとすると
以下のように実行することでライブラリのインストールが行えます。

$ tar zxvf Jcode-0.82.tar.gz
$ cd Jcode-0.82
$ perl Makefile.PL
$ make
$ make test
$ make install

必要な環境の準備 (CGI.pm)

次は CGI.pm です。
Cygwin 1.3.12 では ver 2.752 が標準で組み込まれていますので、
これ以降のバージョンの Cygwin についてはインストールする必要はありません。
それでも、最新の CGI.pm をインストールしたいという方は、
以下のとおりに実施してください。

-----
以下の URL からソースを取得してください。

CGI.pm(ver2.91)

CGI.pm.tar.gz (ver 2.91) をダウンロードしたとすると
以下のように実行することでライブラリのインストールが行えます。
すでに標準で CGI.pm が入っており、
そちらのほうがライブラリの検索順が早いので、
最後に標準でインストールされている 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

必要な環境の準備 (libwww-perl)

最後に libwww-perl を準備します。
libwww-perl の中にも依存関係があるので、
それを解決しながらのインストールとなります。

依存関係は以下のとおり。
リンクを張っておきましたので、上記のリンクからソースを取得して、
以下のように実行することで、ライブラリのインストールが出来ます。
上記の URL で新しいバージョンのソースを手に入れた場合でも、
基本的には手順はいっしょのはずです。

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 できないです・・・。


ちなみに、依存関係の調査は URL やソースの中の記述を調べることで行えます。
以下の本家のサイトが一番わかりやすいと思います(情報は古いですけど)
http://www.linpro.no/lwp/

Another HTML-lint のインストール

やっと、目的のもののインストールです。
以下の URL からソースを取得しましょう。
Cygwin 上で文字コードが違っていても問題ありませんが、
改行コードが違っていると問題が起こる可能性があるので、
取得するのは、htmllint.zip (EUC/LF) です。

http://openlab.ring.gr.jp/k16/htmllint/download.html

基本的に展開して、設定を行えば動くのでドコにおいてもいいのですが、
一般的に考えて /usr/local 配下に置くのが普通でしょう。
そういうわけで、以下のようにインストールすることをおすすめします。

$ mkdir /usr/local/htmllint/
htmllint.zip を Windows 上で展開して、
/usr/local/htmllint/ にあたる場所に配置してください。
$ cd /usr/local/htmllint/
$ mkdir cache
$ mkdir logs
$ mkdir images
$ mv *.gif images
$ chown -R 544:544 ./
$ chmod 644 `find ./ -type f`
$ chmod 755 `find ./ -type d`
$ chmod a+x *.pl *.cgi htmllint
$ mv htmllintenv htmllint.env

そして、忘れないうちに perl のファイルパスを修正しましょう。
$ cd /usr/local/htmllint/
$ grep /usr/local/bin/perl `find ./ -type f`
で表示されるファイル群に対して、
/usr/local/bin/perl → /usr/bin/perl と書き換えましょう。


残りは設定だけです。
htmllint.env というファイル(EUC)を設定すれば終わりです。
それほど難しくないので、この設定をするのに特にヘルプはありません。
うまくいかないときは私の設定 (htmllint.env)も参考にしてみてください。

Apache の設定 (httpd.conf)

以上で、htmllint の環境が整いました。
後は Apache を設定して、Web から htmllint を使えるようにすれば完了です。
/htmllint/ からアクセスするようにするには、
以下のとおりに設定を加えれば OK です。
# もちろん設定後に Apache の再起動が必要です
<IfModule mod_mime.c>
        Addtype application/x-httpd-cgi .cgi
</IfModule>
Alias         /htmllint/            /usr/local/htmllint/
<Directory "/usr/local/htmllint/">
        <IfModule mod_mime.c>
                # CGIの利用する拡張子を設定
                AddHandler cgi-script .cgi
                Addtype application/x-httpd-cgi .cgi
        </IfModule>
        Options ExecCGI None
        AllowOverride None
        Order Allow,Deny
        Allow from all
</Directory>

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

実際に使う

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

http://127.0.0.1/htmllint/

などから Another HTML-lint が使えるようになっているはずです☆
活用して、より良い HTML を書くようにしましょう!!


より活用するには以下の URL がおすすめです。
htmllint の使い方
Internet Explorerとの連携
Another HTML-lint の導入及び UserAgent との連携
Valid XHTML 1.0 Strict Valid CSS!
戻る