ハード全般
青色LED
キーボード
ジャンクHDD
Millenium I
AHA-2940UW
NeXTキ-ボ-ド
キー・ホルダ
USBポート切替
ADB GamePAD
SCSI-BOX
GeoPort給電
AirMac修理
USB-SCSI
USBキ-ボ-ド
USB角マウス
iBook修理
NeXTキ-ボ-ド2
EtherWave
ADB連動TAP

Mac Plus
128KMac改
続・Plus改
10Base-2→T
ATX電源ON!
iMacPlus

PowerMac 7100
復活の7100
7100 in IIcx
AUI→AAUI
32M-SIMM
Win on 7100
CD with 7100

PowerMac 8500
8500分解
メモリ増設
Drive増設
SonyのFD
64M-DIMM

Yosemite
Socket再生
DVD搭載
DVD再生
FireWire
シリアル
PCIでFireWire
ホタル点滅
FireWire修理
SawTooth化
300W静音電源
フロントSlot

iMac
iMacの解体
ADB復活
信号/解析
DVD搭載
8M-VRAM化
1M-cache化

iMacDV
コネクタ信号
DV in IIcx
DV基板PartII

Cube
電源SW対策
DVD-R搭載
24V電源
AirMac互換
ATX電源化
7457換装
電源内蔵
Li2次電池
1394a-HDD

OSX〜10.1
β起動
Tips
解析など
iCab
iTunes
SD-R1002
GhostScript
GSで印刷

Jaguar
PerlでCGI
Tips

Panther
DVD-Multi
GhostScript

〜MacOS9
OS 9
OS 8.1E
OS 8
パッチ1
パッチ2
QT4パッチ
プリンタ共有
Mac&TekScope
GhostScript

www/Perl
wwwサーバ
PerlでCGI
UNIX&MacPerl

他/支援
CAP
MkLinux
Mac検定

掲示板
Mac-BBS


  MacPerlでCGIを実行しよう!

MacでWWWサーバが動いたらやっぱり次はCGIもサポートしたくなりますよね。
うれしいことにフリーで公開されてるwwwサーバもCGIをサポートしています!(^^)/


AppleScriptでCGIを実現する!

CGIをMacのWWWサーバ上で実行するためには、AppleEventでWWWサーバ・ソフトからCGIアプリケーションを呼び出す形を取ります。 ですから、AppleEventをサポートしたアプリならCGIとして原則的に利用が可能です。 ですので、当然AppleScriptで書かれたアプリでもOKなのです。 この辺は、田中求之さんのホームページに詳しく載っています。 サーバはMacと WebStarで動いてて、BBSはAppleScriptで動いています。 (す、すごいなあ!)
開発キットも公開されてますので一度覗いてみましょう! おすすめです

AppleScriptは、いろんなアプリを連携させることも可能です! データ・ベース や表計算ソフトをWWWで制御することだってできるのです! これってすごい機能 だと思いませんか?! ただ、現状ではプロバイダでもUNIXのwebサーバが多いので、汎用性がないのが 唯一そして若干の悩みですよね〜。(Rhapsodyに期待しましょう!)
専用線が自宅にも欲しいっ! 

MacPerlでUNIXコンパチのCGIを実現する!

UNIXでCGIといえば「Perlシェル」でしょう。 Perlは文字列処理に強いシェルで、 掲示板やチャットなどはほとんどPerlでシェル・プログラミングして作られています。
ん? それならAppleScriptでPerlアプリと連携させちゃえばいいんじゃない? って思ったあなたは スルドイ !!

そのPerlのスクリプトをMacで実行しちゃうのが「MacPerl」なのです。 そして 最新のMacPerl5.2.0r4 (98/5/10現在) ではMacHTTPやWebStarで利用できるCGIアプリ としてSaveする機能を持っています。AppleScriptで見事に連携プレーをこなします!

 [MacPerlのダウンロードはこちら]

あと日本語変換用ライブラリ、「jcode.pl-2.6」は必需品です。 インストールは簡単。 文字コードをShift-JIS、改行コードをCR(Mac)に変換して、名前を「jcode.pl」に変えてMacPerlのLibフォルダに入れておきます。 (使うときは、 require 'jcode.pl';  のようになります。)

あとはスクリプトを組んで、最後にセーブする時に「Script CGI」としてセーブ、 それをMacHTTPで使うだけです。 あ、File Nameは ****.cgi にしてくださいね。

UNIXからのスクリプトの移植やデバックにも使えます。 Perlのオフライン・デバックがMacでできる! か、感動モノですよね。


MacPerlでCGI、その後...

私のPowerBook550cでもPerlが使えるようになり、UNIX用のスクリプトや MacPerl用に移植されたスクリプトをいろいろ試してみました。

現在のところ、「カウンタ」「BBS」「チャット」 を無事動かすことが できました。 スクリプトの勉強も兼ねていろいろイジってます。

来HPした回数をカウントする「カウンタ」の実装についての注意点は、 MacHTTPやweb共有は、SSI(サーバ・サイド・インクルード) に対応してないという点 だけです。 SSI非対応でも使えるCGIカウンタなら使用可能です。
[例えばココ!]

BBSやチャットのスクリプトはいろいろなものがフリーで公開されてます。  UNIX用の物でも、ディレクトリの指定だけ直せばほとんど動いてしまいます。
亀屋BBSでも使用しているminibbsの7.5cは2行変更しただけでMacPerlで動きました。)
[例えばココ!]

私は最近このチャットのスクリプトを改造して遊んでいます。 (^_^;;


UNIXのPerlとMacPerlの相違点

Macは使うのが楽しいしカンタンですね。 でもUNIXでCGIをやる、となると本当に敷居が高いのです。 そのせいでもないでしょうが、Perlの本はUNIXの本ばっかり! MacのWWWサーバとCGIについて詳しく書いた本はさっぱり見あたりません。

そこで簡単にUNIXとの相違や注意点をまとめてみました。

● Perlのソースの先頭の、#usr/local/bin/perl はMacPerlではコメントとして無視されます。
AppleScriptでMacPerlは自動的に起動されますので、サーバのHDDのどこにあってもかまわないのです。

● TelnetでMacにログインはできませんし、chmodによるファイルのパーミッション設定も "ない"=設定しなくてよい(できない!)  のです。(^^)
というか、MacPerlで"CGI Script"でSaveした時点でファイルタイプはアプリケーション(APPL)に設定されているのですね。

● MacPerlでの文字コードは、シフトJIS、改行コードはCRです。UNIXに転送する時だけEUCのLFにコード変換して下さい。

私が作った超簡単なMacPerlのCGIサンプルです。 よろしければお試しください。
[サンプルをダウンロード]

実際にCGIを移植する手順をこちらに書いております。 よろしければご覧ください。


kameicon 自分で考え、試し、失敗してでもやりとげる意志がある人に,多少なりともここの情報が役に立てばそれでよしとしましょう。
従って、質問、メール等は原則的にお断りします。
亀屋TOPへ
Mac改造TOPへ