別のことで手一杯だったので、2月始めに購入した後は最低限のアプリだけ追加して、ほとんど何もせずに使っていたMacBookの改造(←大げさ)に本日着手しました。生意気なことに、ローカルでCGIを動かそうという企画です。
_________________________________________
仕事で、既存のPerlに少しぐらいはカスタマイズできるようになる必要に迫られ、前のPowerBookでは友達にメールで泣きつきつつもローカルでCGIテストは一応できるようにはしてあったのだが、今回のまだだったわけだ。
そして、現在外注で取っているデータの解析結果が返ってきたら、、、それを解析するプログラムの最新版がCGIとして提供されているので、今のうちにローカルで走るようにしておかないと、ちょっと厄介なことになりそう(うちの職場のネット環境は信用ならないので)。
というわけで参考にするのはここ。
「Mac OS X 覚え書き CGI perl shtml phpを動かす」何にも解らないので、ここに従って書き換えるだけ。
インストールしておいたX11(←ターミナルでないところが生意気)を起動して目的のファイルをホームにコピー。
愛用のエディタmiで開いて。
まずは最初の「cp /etc/httpd/httpd.conf  ̄」、、、あれ、検索しても見つからない。
…すぐにわかった。最後のチルダーの前にスペース入っているの見落としちゃってたよ(をい)。
そして次に探すのは、
#LoadModule ssl_module libexec/httpd/libssl.so
#LoadModule perl_module libexec/httpd/libperl.so
#LoadModule php4_module libexec/httpd/libphp4.so
…また、検索しても見つからないと帰ってくる。
えー?
と思ってスクロールしながら自力で探すと。
#LoadModule dav_module libexec/httpd/libdav.so
#LoadModule ssl_module libexec/httpd/libssl.so
#LoadModule perl_module libexec/httpd/libperl.so
だった。スペースの数が違っていたからか検索にかからなかったわけか。
#を取っ払って。
その後は順調に、ここの説明通りに修正することができた。
これで一応は環境は整っている筈だけど、このままだとCGIの実行ファイルとHTMLファイルの入れる場所が違ったりして面倒。なので、後で楽をするためにもう一頑張り。
そこで、次に参考にするのがここ。
「超簡単 Mac OS XのローカルでCGI (SSIもPHPも)」ここでも、記述にそのまま従って、WWW にだす場合の設置サーバとPerlのパスを同じにしておく。
で、CGIもHTMLもまとめておいて実行できるように「ユーザのSitesディレクトリ内で実行 (SSIも)」の通りにUser.confファイルを書き換え。さっきと同じく、目的のファイルを、ホームにコピーしてmiを使う。
CGI実行可能にして、SSIも実行可能にして、index.shtmlをindexファイルに追加して、.htaccessを有効にして、ついでに自分自身 (localhost) 「127.0.0.1」からのみのアクセスを受け入れるように書き換えて(この場合に.htaccessを有効にする必要があるかどうか解らないけどやってみたかった)。
できた。
元の場所にコピーして。
これで、ユーザのサイトディレクトリ内のPerl CGIが動くはず。
ブラウザからCGIを呼び出してみる。
「403 Forbidden」え?どうして?
設定を変更したファイルを全部確認。間違ってない。
あ、WEB共有をいったん切って、再度入れ直さないといけないらしい。やってなかったね。
やってみてからCGIを呼び出す。
「403 Forbidden」え?まだだめ?
持ち主なのにアクセスお断りされるのは非常に理不尽な気分にはなるが、だからといって投げ出す訳にもいかないし。
パーミッションかな?
設定し直してみる。
やっぱりだめ。
だんだん途方に暮れてくる。
試しに、ライブラリ/WebServer/CGI-Excutablesに、動かないCGIをコピーしてみてブラウザから呼び出してみる。
…普通に動いた。
え?どうして?
どうやら、今の設定でユーザのサイトディレクトリ内でやろうとするとだめみたい。
前のPBならいけたのに。
なんでかなー。もしかして、intel Macになったから?
そこで、それらしいサイトを片っ端から見ていく(途中で多少脱線したのは内緒だ)。
そうこうするうちに
「Intel MacにMovable Typeをインストールしてみました」という記事を発見する(これも半分ぐらいは脱線という噂もある)。
ふーん面白そう(<こら)と読み進めるうちに、衝撃の記述を発見した。
「システム環境設定の「共有」設定で、「パーソナルWeb共有」のチェックを入れる。これで完了。設定ウィンドウの右に表示されているアドレスが、ローカルのアドレスになります(たぶんhttp://10.0.1.2/username)。」
…えええ! ローカルのアドレスってもれなく127.0.0.1じゃなかったの?!(すみません無知で。っていうか、前のはこれでOKだったし)
早速WEB共有を確認して、その番号を、User.confにアクセスを許可するアドレスとして追加する。
所定のディレクトリにファイルをコピー。
念のため、WEB共有をいったん切って、再度入れておく。うん、さっきと同じ番号だし。
そして、ブラウザからCGIを呼び出し。
動いた!いや、マジに万歳しましたとも。
あーよかった。疲れた。肩もこった。やれやれ。