Another HTML-lint を Linux サーバに設置
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 用です。他のブラウザでは確認していません。
このリンクをブックマークツールバーなどにドラッグ・アンド・ドロップします。初期状態では本家のサーバにチェックに行くようになっていますので、これを必ず自分で設置した 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.