Another HTML-lint on MacOS

目次 準備 Another HTML-lint について
TCP/IPの設定 ゲートウェイサーヴィス
WWWサーバの設定 簡易ゲートウェイ
  MacOS Web共有 結果の解説
  Personal Web Server
  Quid Pro Quo タグ一覧
  NetPresenz 色見本
その他の調整
MPW Perl で動かす

46,140 lints / 0 visits / since Jan 6, 1998

MacOS logoここでは、Classic MacOS上にローカルWWWサーバを立てて Another HTML-lint を動作させる方法をごく簡単に示します。嘘を書いてるかも知れないので、そのときは k16@chiba.email.ne.jp まで指摘してくださると嬉しいです。作業は、MacOS8.1J/PowerPC上で、MacPerl5.2.0r4を用いて行ないました。(1998/9)


注意: ここの内容は MacOS8.1 時代のもので、今や多少古臭くなっています。その積りで読んでください。

準備

MacPerlMacPerlダウンロード(例えば Mac_Perl_520r4_appl.bin というやつ)してインストールしておきます。インストールしたままですぐ使えます(割当てメモリを増やす必要があるかも知れませんが)。古い版(5.1.3r2以前)では CGI Script がバンドルされていないので、別途用意する必要があるのですが、そのようなときは、新しい版をダウンロードし直してください。MacPerlについては、『MacPerl Primer』や『MacPerl Island』などを見てください。UNIX Perlとの違いについては、『MacPerl Differences in CGI Programming』にまとめられています。

Jcode.pm をダウンロードします。WWWブラウザからCGIとして利用するときは CGI.pm が必要ですが、こちらは標準ライブラリなのですでにインストールされているはずです。ただし、ヴァージョンが古い(2.5xでない)ときは、最新版に置き換えてください。改行コードがLFのままだと動作しないので、もしそうなら、それをCRに変換します。Jeditなどのエディタでもできます。改行コードをCRに変換するMacPerl用のドロップレットも作ってあります。
Jcode.pm も CGI.pm も、インストーラが付いてきますが、うまく行かない場合は、これらと、Jcode と CGI というフォルダをMacPerlの lib フォルダに放り込みます。

htmllint.sit.bin をダウンロードしてどこかに展開してください。htmllint というフォルダの中に全ファイルがばらまかれています。その中の、htmllint はドロップレットとして、htmllint.cgi と tagslist.cgi はCGI形式であらかじめ作られています。htmllint は、ただちにドロップレットとして動作するはずです。何かHTMLファイルをhtmllintにドロップしてみてください。もし固まってしまう場合は、MacPerlの割当てメモリを増やしてください。

Another HTML-lint をWWWブラウザからCGIとして利用したいのでないならば、これでほぼおしまいです。CGIとして動作させたいなら、htmllintenv を htmllint.env に改名し、WWWサーバをインストールしておく必要があります。htmllint.env の内容は、特に変更しなくてもいいようになっていますが、一度目を通しておいた方がいいでしょう。最近のMacPerlには、LWP (libwww-perl) はバンドルされていますが、もし、何らかの理由でLWPがインストールされていない場合は、httpreq.plをlibフォルダに入れておいてください。
MacOS BG imageついでに htmllint.css もちょっと細工しましょう。例えば、MacOSロゴのデスクトップパターンを淡い色合いにしたイメージを用意して、

        BODY {
            background-image: url(MacOS-bg.gif);
            background-color: #EDEDFF;
        }

というふうに手直しします。background-color はイメージの背景色に合わせます。

手近に入手できるWWWサーバには次のようなものがあります。いずれもCGIを動作させることができます。(ヴァージョンは調査時のもので最新版ではありません)

WWWサーバのインストールはあとでやります。

TCP/IPの設定

TCP/IPTCP/IPコントロールパネルの設定を行なっておく必要があります。すでにLAN接続しているならば、改めて設定する必要はありません。

インターネットにダイアルアップ接続している場合、設定をそのままにしておくと、ローカルなアドレスを参照するときも電話を掛けに行ったりしてしまうので、ローカル用の設定を用意して、切り替えて運用する必要があります。
このとき、経由先をPPPなどでない別のものにする必要があります。Ethernetが空いているならそれを使えますが、そうでないときは、AppleTalk経由にするのが普通です。しかし、モデムポートもプリンタポートも使っている、Ethernetは使えない、という環境のMacは普通にあるでしょう(わたしの自宅のMacもそうだった)。そうなると、AppleTalkは使えません。じゃあローカルサーバ立ててCGIというわけにはいかないのか、と諦めてはいけません。RemoteOnly「リモートのみ」という便利な機能拡張があります。MacOS8では、Apple Remote Access の中に含まれています。Apple Support Area などからもダウンロードできます。OT 1.1.2 Extras の中に含まれています(英語名 RemoteOnly)。MacOS8.5では普通にインストールされています。
ダイアルアップ接続をしていないときなど、TCP/IPを使っていないときでも、どこか経由先を指定してTCP/IPの設定はしなければならないので、リモートのみ機能拡張をインストールしておくと便利です。

AppleTalkまず、AppleTalkを次のように設定します。これは、経由先を「リモートのみ」にするだけです。モデムポートやプリンタポートなどで、使っていないポートがあるのなら、そこを指定してもいいです。

AppleTalk Dialog

もし、次のダイアログが出たら、[ はい ] を押してAppleTalkを入にしてください。

AppleTalk Alert Dialog

TCP/IP次に、TCP/IPを設定します。すでにPPPなどの設定を行なっている場合は、ファイルメニューから [ 設定... ] を選び、[ 複製... ] で例えば「localhost」という名前の設定を作っておきます。[ 設定 ] ボタンを押し、TCP/IPコントロールパネルで次のように設定します。

TCP/IP Dialog

IPアドレスは、どんな数字でもいいわけではなく、今回のように、プライベートに使えるアドレスは決められています(RFC1918)。例えば、192.168.XXX.XXX がそうです。XXX には 0~255 の好きな数字を使うことができます。ただし、192.168.0.0 と 192.168.255.255 などは使ってはいけません。ここでは、例えば「192.168.0.1」としておきます。
Ethernet経由の場合はサブネットマスクが必要となるので、次のように 255.255.255.0 としておきます。

TCP/IP Dialog

WWWサーバの設定

こまかい設定は抜きにして、とりあえずローカルにWWWサーバを立ち上げて Another HTML-lint が動くようにします。より詳しくは、『あなたのMacでWWWサーバーを!』 が参考になるでしょう。

Web共有 MacOS Web共有

MacOSに標準で付いてくるので、たいていはインストールされています。コントロールパネルにあるWeb共有を起動し、[ 開始 ] ボタンを押すだけでWWWサーバが立ち上がります。htmllint フォルダは、「Web フォルダ」で示されているフォルダの下に置きます。
WWWブラウザを起動し、ロケーションに「http://192.168.0.1/htmllint/」と入力すれば Another HTML-lint のページが表示されます。文字が化けるときはリロードしてください。あるいは、HTMLをSJISに変換してください

Web Sharing Dialog

Personal Web Server Personal Web Server

MSIE4.0などをインストールすると一緒にインストールされます。コントロールパネルにあるPersonal Web Managerを起動し、[ 開始 ] ボタンを押すだけでWWWサーバが立ち上がります。htmllint フォルダは、「発行されているフォルダ」で示されているフォルダの下に置きます。
WWWブラウザを起動し、ロケーションに「http://192.168.0.1/htmllint/」と入力すれば Another HTML-lint のページが表示されます。ただし、JISで書かれたHTMLが正しく表示されません。HTMLをSJISに変換してください

Personal Web Server Dialog

Quid Pro Quo Quid Pro Quo

Quid Pro Quoは、インストールして最初の起動で、ウィザード形式の環境設定が行なえます。ここで設定した内容はあとでも変更できるので、気軽に行なって構いません。とりあえず設定する項目はごくわずかです。

最初は次のダイアログです。[ Next >> ] を押して次に進みます。使用したのは 2.1.2ですが、ダイアログ上の表示が 2.0というのはご愛敬でしょう。以下ダイアログの右半分です。全体はこんな感じ

Quid Pro Quo Dialog#1

いくつかダイアログを飛ばして次のダイアログが出たら、何かサーバに名前を付けます。何でも構いません。

Quid Pro Quo Dialog#4

次のダイアログでは、Restrict CGI Execution... のチェックを外しておきます。これは、Another HTML-lint のCGIが、cgi-bin というディレクトリにまとまっているわけではないからです。もちろん、cgi-bin フォルダを用意して、CGIをそこにまとめるようにするのならばこの限りではありません。

Quid Pro Quo Dialog#6

次のダイアログで、WWWのルートとなるフォルダを指定します。[Choose...] を押して適当に選択します。例えば、Web共有で作られた「Web ページ」というフォルダで構いません。日本語のフォルダ名の場合、ダイアログ上の表示がおかしくなりますが、気にする必要はありません。htmllint フォルダは、ここで指定したフォルダの下に置きます。

Quid Pro Quo Dialog#9

これで設定は終わりです。最後のダイアログで [ Done ] を押すとWWWサーバが起動されます。わたしの環境では、ここでハングアップしてしまうことがありました。設定自体は正しくされているようで、再起動後 Quid Pro Quo を立ち上げれば、ちゃんとWWWサーバとして正しく動作します。
WWWブラウザを起動し、ロケーションに「http://192.168.0.1/htmllint/」と入力すれば Another HTML-lint のページが表示されます。


NetPresenz NetPresenz NetPresenzConfig

NetPresenzは、サーバ本体の NetPresenz NetPresenz と、環境設定用プログラム NetPresenzConfig NetPresenz設定 から構成されます。

InternetConfigNetPresenz設定を起動しようとすると、「Internet設定を先にやってくれ」と言われるかも知れません。そのときは、言われたとおりInternet設定を行なってください(機能拡張をインストールするけど、と言われたらインストールします)。Internet設定では、個人情報や電子メールなどを適当に設定します。

InternetConfig Dialog

NetPresenzConfigNetPresenz設定を起動すると次のダイアログが表示されます。

NetPresenzConfig Dialog

WWW設定を押して、次のダイアログでWWWとCGIを有効にして、ルートディレクトリを選びます。もし、ルートディレクトリに「/MacOS 8.1/Web ページ」のようにボリューム名が含まれていたら、ボリューム名を取り除いて「/Web ページ」だけにしてください。ボリューム名が含まれているとうまく接続できません。htmllint フォルダは、ここで指定したフォルダの下に置きます。

NetPresenzConfig WWW Dialog

FTP設定を押して、利用者ごとのアクセス権限を設定しておきます。とりあえず必要なのはゲストですが、オーナとユーザも設定しておきます。リモートマウントはここでは関係ありません。シンプルインターネットバージョンコントロールのチェックは外しておきます。

NetPresenzConfig FTP Dialog

NetPresenzは、MacOSの利用者管理機能とファイル共有機能を前提としています。これらも設定しなければなりません。これまで紹介した他のWWWサーバでもそれらを利用した利用者管理を行なうことができますが、必須ではありませんでした。NetPresenzは必須です。

User&&Group 利用者&グループコントロールパネルで、利用者を登録します。といっても、新規に登録する必要はありません。

User&&Group Dialog

所有者の権限を次のように設定します。

User&&Group Owner Dialog

ゲスト利用者の権限を次のように設定します。

User&&Group Guest Dialog

FileSharingファイル共有コントロールパネルで、ファイル共有の [ 開始 ] ボタンを押します。

MacOS8.1 Folder

次にWWW設定のルートディレクトリで指定したフォルダを共有させます。まず、そのフォルダを選びます。

MacOS8.1 Folder

ファイルメニューから [ 共有... ] を選びます。

Share... Menu

出てきたダイアログで、「この項目と内容を共有する」をチェックし、各利用者にアクセス権を設定します。

Sharing Dialog

[ 適用 ] ボタンを押すと次のダイアログが出るので、[ 適用 ] を押します。

Share Alert Dialog

SharedFolder共有フォルダのアイコンが変わって、共有中であることを示します。

以上で NetPresenzを起動させる準備が整いました。NetPresenz設定の概要を押してみましょう。次のようになっていれば、NetPresenzを起動できます。NetPresenz設定は終了させます。

NetPresenzConfig Summary

CGIを動作させるには、もうちょっと調整が必要です。NetPresenzでは、CGIの拡張子によって挙動が異なります。.cgi が同期、.acgi と .fcgi が非同期です。Another HTML-lint で、URLからHTMLを取得しようとする場合、同期ではうまくいきません(理由は浅学につき不明)。「エラー -1712」(アップルイベントタイムアウト)となって、サーバ側のCGIが永久に応答待ちになってしまいます。そこで、htmllint.cgi の拡張子を .acgi に変更する必要があります。tagslist.cgi はそのままでも動作しますが、同期の必要はないのでこちらも .acgi に変更します。このとき、各HTML中に記述されている .cgi へのリンクもすべて .acgi に変更する必要があります。これらを行なうドロップレットを用意してあります。フォルダごとドロップすれば、該当するファイルすべて変換します。

NetPresenzNetPresenzを起動し、WWWブラウザも起動し、ロケーションに「http://192.168.0.1/htmllint/」と入力すれば Another HTML-lint のページが表示されます。

その他の調整

HTMLを Shift JIS に変換する

JIS で供給されているHTMLを Shift JIS に変換して利用するには、単純にコード系を変換するだけでなく、他の若干の調整が必要です。

  1. 各HTML内のCHARSETの指定を変更します。
            <meta http-equiv="Content-Type" content="text/html; charset=ISO-2022-JP">
            <meta http-equiv="Content-Type" content="text/html; charset=Shift_JIS">
  2. htmllint.html の「出力する漢字コード」の既定値を Shift JIS にします。
            <input type=radio name="CharCode" value="JIS" checked>JIS (ISO-2022-JP)
            <input type=radio name="CharCode" value="EUC">EUC-JP
            <input type=radio name="CharCode" value="SJIS">Shift JIS
            <input type=radio name="CharCode" value="JIS">JIS (ISO-2022-JP)
            <input type=radio name="CharCode" value="EUC">EUC-JP
            <input type=radio name="CharCode" value="SJIS" checked>Shift JIS
  3. htmllint.env で、CGI が出力する HTML の漢字コードの既定値を $KANJICODE = 'SJIS'; とします。

HTMLファイルの変換を行なうドロップレットを作ってあります。これは、上の 1~2 を行ない、文字コードを Shift JIS にし、改行コードをCRに変換します。フォルダごとドロップすれば、該当するファイルすべて変換します。

Document contains no data

大きなHTMLや、エラーのたくさんあるHTMLをチェックすると、CGIのメモリ割り当て量の不足から「Document contains no data」(英語版Mozillaの場合)というようなダイアログが表示されることがあります。

Document contains no data

このようなときは、CGIのメモリの使用サイズを増やしてください。

CGI Information Dialog

MPW Perl で動かす

MPW Shellここでは、Another HTML-lint を MPW Perl で動作させるための方法を簡単に説明します。MPWを知っている方には退屈な内容なので、読む必要はありません。(1999/6)

  1. 当然ですが、MPWが必要です。持っていなければダウンロードしてインストールしておきます。

    MPW window

  2. MPW Perl は、Mac_Perl_520r4_tool.bin などという名前で配布されています。このtool版Perlをダウンロードしておきます。また、これを使うには、準備で述べた appl版Perlも必要です。

  3. appl版Perlをインストールし、ドロップレットPerl dropletとして提供されている htmllint を普通のテキストファイルPerl textにしておきます。

  4. tool版Perlをインストールします。このとき、appl版と同じフォルダにインストールすると楽です。

  5. MPW Shell MPW Shell を起動します。最初の起動では次のようなウィンドウが出ますが、ひととおり読んで(あるいは読まずに)内容は全部消去して構いません。MPW Shell ウィンドウでは、どこでも好きな場所にコマンドを入力して実行させられます。表示されている文字列はいつまでも残っているので、適当に黒板消しで消すように消去します。

    MPW Shell Initial Window

  6. メニューの [Directory]-[Set Directory...] を選んで、tool版Perlをインストールしたフォルダを指定します。

    Set Directory... Menu

    Select Directory Dialog

  7. MPW Shell ウィンドウ上で、「Install.MPW_Perl」とタイプして enter キーを押します。MPW Shell ウィンドウ上では、enter キーと return キーの動作が異なるので注意してください。enter はコマンドの実行で、return はただの改行です。command-return で enter の代用ができます。

  8. 表示されたウィンドウ中の $MACPERL の値が、appl版Perlのあるフォルダになっているか確認してください。tool版Perlをappl版Perlと違うフォルダにインストールした場合は、そこを修正します。その他は、特に修正しなくても大丈夫です。

    Config MPW_Perl Window

  9. このウィンドウを閉じます。内容を変更したときは保存します。

  10. もう一度 MPW Shell ウィンドウで「Install.MPW_Perl」とタイプして enter キーを押します(すでに表示されているので文字列末にカーソルを移動させて enter でもOKです)。次のように表示されます。

    MPW Shell Install MPW_Perl Window

  11. 指示に従って、# Please select 以下の行をハイライトして enter を押します。

    MPW Shell Selected MPW_Perl Window

  12. これで、tool版Perlのインストールは終わりです。MPWを起動し直し、MPW Shell 上で「perl -v」とタイプして enter を押します。次のように Perl のバージョンが表示されればOKです。

    MPW Shell Run MPW_Perl Window

  13. MacPerl の lib フォルダに Jcode.pm がインストールされていること、htmllint がテキストファイルになっていることを確認します。

  14. メニューの [Directory]-[Set Directory...] から、Ahother HTML-lint がインストールされているフォルダを指定します。

    Select Directory Dialog

  15. 「perl htmllint」とタイプして enter を押します。次のように表示されればOKです。MPW上で Another HTML-lint を利用できます。

    MPW Shell Run HTML-lint Window

    注意: MPW Shell は日本語に対応していません。いろいろな特殊文字が、半角カタカナや Shift JIS コードの一部と競合します。表示フォントは [Edit]-[Format...] で変更できますが、Osaka などを指定すると、半角カタカナのオンパレードであまり見易くありません。「help characters」などを実行してみてください。わたしは、半角カタカナの含まれない Narashino などを使っていますが、それでも上の「コンマ」のところなどに文字化けが見られます。左が Osaka、右が Narashino です。

    MPW Shell Characters

  16. 毎回MPWを起動するたびに [Set Directory...] するのは面倒なので、MPWフォルダの中の Startup Items フォルダの中に、

        setdirectory 'MacOS 8.6:htmllint:'

    などと書いたテキストファイルを置いておきます。ここには、実際に自分の環境での htmllint のあるフォルダへのパスを指定します。よくわからないときは、「perl htmllint」が動作した後で、「directory」とタイプして enter してみるとわかります。

    MPW Shell show directory Window

    これをコピーすればOKです。ファイル名は「htmllint」でいいでしょう。
    MPWを再起動すると、[Directory] メニューの下に、指定されたフォルダがあらかじめ並んでいるので、それを選ぶだけで済むようになります。

    Set Directory... Menu

さて、後は MPW Shell 上で、「perl htmllint hogehoge.html」のように htmllintの使い方にある使い方ができます。


Updated: Nov 28, 2011 16:17
Created: Sep 12, 1998 © by k16@chiba.email.ne.jp