Another HTML-lint を Linux サーバに設置

2005-7-16 13:22
このエントリーをはてなブックマークに追加

HTML の文法チェックツールとして有名な Another HTML-lint を、自前の Linux サーバにセットアップしましたので、そのときの設定メモ。ちなみに fumika.jp のサーバではありませんので、ヘンな真似はしないで下さい。サーバは Red Hat Linux 9 です。

ダウンロード

まず、Another HTML-lint をダウンロードします。最新の zip 版をダウンロードし、/var/www/html/htmllint/ に解凍します。ディレクトリ名は htmllint にする必要性はありませんが、ここでは便宜上そのようにしてあります。

必要パッケージの確認

Another HTML-lint は Perl の LWP(libwww-perl)、CGI および Jcode モジュールが必要です。

  $ rpm -qa | grep perl

として必要なモジュールがインストールされているかどうかを確認してください。Red Hat Linux 9 には Jcode の RPM は含まれていませんが、私がパッケージしたものを公開していますので、こちらをインストールしても良いかと思います。(もちろん自己責任でお願いします。)

また、Another HTML-lint はテキストブラウザでの見栄えを出力してくれる機能があります。これを利用するために Lynx パッケージも入っているかどうかチェックしておいてください。

  $ rpm -q lynx
  lynx-2.8.5-11

設定

解凍した中に htmllintenv というファイルがあります。これを htmllint.env に名前を変更した上で、開いて修正します。

  $ mv htmllintenv htmllint.env
  $ vi htmllint.env
  #コメントを外す
  $KANJICODE = 'EUC'; 
  #コメントを外してパスを修正
  $LYNX = '/usr/bin/lynx -dump -nolist -force_html';

ほかにもプロキシサーバの設定などが必要でしたら行なってください。

Red Hat Linux では、通常 perl のパスは /usr/local/bin/ ではなく /usr/bin/ です。htmllint(というファイルがあります)、htmllint.cgi、tagslist.cgi、および parsedtd.plファイルを開き、先頭行の Perl のパスを修正します。

  #!/usr/bin/perl

*.cgi ファイルのパーミッションを 755 などに変更し、CGI が動作するようにします。

  $ chmod 755 htmllint.cgi tagslist.cgi

また、Lynx の設定を変更し、出力が EUC になるようにします。

  # vi /etc/lynx.cfg
  #CHARACTER_SET:iso-8859-1
  CHARACTER_SET:euc-jp

httpd.con の設定

Red Hat Linux の Apache のデフォルト設定では、CGI が cgi-bin ディレクトリ以外では動きません。そこで htmllint ディレクトリでも CGI が動作するようにします。また、htmllint.env ファイルが第三者に見られないようにします。

これらの設定は .htaccess ファイルで行なう方法もありますが、今回は httpd.conf ファイルに直接書いてみました。

  # /etc/httpd/conf/httpd.conf
  <Directory "/var/www/html/htmllint">
    Options MultiViews ExecCGI
    AllowOverride None
    AddHandler cgi-script .cgi .env
    AddCharset ISO-2022-JP .html
    Order allow,deny
    Allow from all
  </Directory>

.html に対して ISO-2022-JP の Charset を指定しないと、結果の解説ページなどが文字化けします。 設定が終わったら、Apache を再起動します。

  # service httpd configtest
  Syntax OK
  # service httpd graceful

テスト

ウェブブラウザで http://サーバ名/htmllint/ にアクセスして、テストしてください。CGI のソースコードが表示されてしまう場合は、httpd.conf の設定か、パーミッションの設定に誤りがあります。CGI のエラーが発生する場合は、Perl のパスの書き換えができてないか、httpd.conf の設定に誤りがあると思います。

ブックマークレット

HTML-lint の動作が確認できたら、ブックマークレットを作っておきましょう。次のリンクは Mozilla Suite / Firefox 用です。他のブラウザでは確認していません。

Another HTML-lint でチェック

このリンクをブックマークツールバーなどにドラッグ・アンド・ドロップします。初期状態では本家のサーバにチェックに行くようになっていますので、これを必ず自分で設置した URL書き換えてください。チェックしたいページを開いた状態でブックマークレットを使います。

2009-11-12 追記

lynx.cfg で出力コードを EUC に変更してしまうと、HTMLlint 以外の目的で Lynx を使うときに困ります。その場合は lynx.cgi を変更せずに、htmllint.env 内の $LYNX に文字コードの指定を追加します。

  $LYNX = '/usr/bin/lynx -dump -nolist -force_html -display_charset=euc-jp';

コメントはまだありません

No comments yet.

Sorry, the comment form is closed at this time.

32 queries. HTML convert time: 0.064 sec. Powered by WordPress. Valid XHTML
Copyright © 2003-2017 @ futuremix.org ログイン