Another HTML-lint のインストール(RedHat)

[サーバの実験室 Redhat/Fedora]

作成 : 2003/08/18

"サーバの実験室"の検索


Another HTML-lint とは

石野恵一郎氏が作成した、HTML 文法チェッカ。 本家のサイトは、http://openlab.ring.gr.jp/k16/htmllint/introduction.html

用意したもの

その 1 : Apache のインストール

ざっくり簡単に...

# rpm -Uvh httpd-2.0.40-21.3.rpm

設定は、httpd(httpd-2.0.40-8)の設定(若干バージョン違うけど...)とかhttpdの設定(httpd.conf)を参照。

注意! Web サーバをたてると、インターネット上の他のパソコンからアクセスされる可能性があることに留意する。 (環境によるけど)

その 2 : Perl のインストール

ざっくり簡単に...

# rpm -Uvh perl-5.8.0-88.rpm

その 3 : CGI.pm のインストール

ざっくり簡単に...

# rpm -Uvh perl-CGI-2.81-88.rpm

その 4 : LWP のインストール

libwww-perl-5.69.tar.gz を適当なフォルダに展開して make。

# tar -zxvf libwww-perl-5.69
# cd libwww-perl-5.69
# perl Makefile.PL ; make ; make test ; make install

その 5 : Jcode.pm のインストール

Jcode-0.83.zip を適当なフォルダに展開して make。

# unzip Jcode-0.83.zip
# cd Jcode-0.83
# perl Makefile.PL ; make ; make test ; make install

その 6 : Another HTML-lint のインストール

htmllint.zip を適当なディレクトリに展開。 Apache の RPM パッケージでは、デフォルトのドキュメントルートが /var/www/html になっているので、その配下(たとえば、/var/www/html/htmllint とか)がいいかも。 htmllintenv を htmllint.env(ドットに注意)に名前を変更。 パーミッションは、*.cgi が 705、それ以外は 604 にしておく。

# mv htmllint.zip /var/www/html/htmllint
# cd /var/www/html/htmllint
# zip htmllint.zip
# mv htmllintenv htmllint.env
# chmod 604 *
# chmod 705 *.cgi

htmllint.cgi と tagslist.cgi の 1 行目に記述してある perl のパスが正しいか確認し、間違っている場合は修正する。

#!/usr/local/bin/perl → #!/usr/bin/perl

htmllint.env を編集して、ログを取るようにしてみる。

$LOGSDIR = '/var/log/htmllint/';   # ログファイルの場所 (不要ならコメントアウト)
                                   # 最後のスラッシュを忘れないこと!

# 得点記録用ログファイル (不要ならコメントアウト)
#   # の部分は年月に置き換わります
$SCOREFILE    = "${LOGSDIR}score#.log";
$SCORECOUNTER = "${LOGSDIR}score.cnt";

# 警告の統計用ログファイル (不要ならコメントアウト)
#   # の部分は年月に置き換わります
$STATFILE = "${LOGSDIR}statistics#.log";

ログディレクトリを作成する。 所有者は apache を起動しているユーザとグループ、パーミッションは 705 にしておく。

# mkdir /var/log/htmllint
# chown apache:apache /var/log/htmllint
# chmod 705 /var/log/htmllint

その 7 : Apache の設定追加

Another HTML-lint の HTML は JIS(ISO-2022-JP)で記述されているため、EUC とか Shift_JIS に設定されているサイトでは文字化けしてしまう。 あと、ディレクトリに CGI の実行権限を付与しないと動かない。 この設定を httpd.conf に追加する。

<Directory "/var/www/html/htmllint">
    Options +ExecCGI
    AddDefaultCharset ISO-2022-JP
</Directory>

AddHandler cgi-script .cgi

Another HTML-lint を試してみる

ブラウザから「http://hostname/htmllint/htmllint.html」(Another HTML-lint をインストールした場所によって適宜変えること)にアクセスし、Another HTML-lint gateway が表示されるか確認する。

チェック方式で「DATA」を選択して、テキストエリアにチェックしたい HTML ソースをコピー & ペーストする。 「チェック」ボタンをクリックして結果が表示されれば OK。

うまく動作しない場合

htmllint.html にアクセスできない

アクセスしている URL が正しいか、Apache の設定が正しいか確認する。 ファイアウォール機能が有効になっている可能性もある。

「チェック」ボタンをクリックするとエラーになる

シェルから htmllint.cgi を実行してみる。 おそらくエラーになるので、メッセージを参考にトラブルシューティングをする。 CGI ファイルに実行権がないかもしれないし、perl のパスが間違っているかもしれない。

# /var/www/html/htmllint/htmllint.cgi

これでだめなら、htmllint をインストールしたディレクトリに CGI の実行権限を付与してあるか、Apache の設定を確認する。


[サーバの実験室 Redhat/Fedora]