[ PC系セットアップ覚書 Top]

PC系セットアップ覚書

2011年まで「俺的な非 UN*X 環境をめざして」という題でしたが、 「UNIX系」と「非UNIX系」の区別がだんだん難しくなってきましたので、 あれこれ区別しないことにしました(^_^;


[前] Windows - 遅延書き込みデータの紛失 2012/04b

MacでCGIを試す (MacOS X 10.6 Snow Leopard) 2012/04a

Web上で動作するCGIスクリプトを組むというとき。 書きかけのスクリプトをいちいちWebサーバに「アップロード」して 動作確認‥なんてのは、無論、やってられません。そこで、手元にある MacOS X (10.6 Snow Leopard)でWWWサーバを起動して、CGIの動作確認まで しちゃおう、という話。

MacOS X では、標準ですでにWWWサーバ(Apache2)が装備されてますので、 それを使うのが一番ラクです。じつはWWWサーバ起動までの手順も非常にラクで、 「システム環境設定」の「共有」の中にある「Web共有」というやつ、これを オンにしてやるだけでWWWサーバが起動するようになります。しかもこれ、 (サーバ機能なので当然といえば当然なのですが) 一度オンにしてやると、以後明示的にオフ指定してやるまでは、 Macを再起動してもオンになりっぱなしです。 ‥というのはさておき。「Web共有」をオンにすると 図のようにウィンドウの右側が「Web共有:入」となります。ここで この図にあるように http://192.168.50.36/ にブラウザでアクセスしてみるとこんな表示が出るはず:

It works!
これでWebサーバの起動はOK!

次は「私のホームページ」。 これは上図のウィンドウにおける「あなたのパーソナルWebサイト」のことですけど、 ここにアクセスするには「ホームフォルダの"サイト"フォルダ」、つまり userという名前のユーザであれば、 "Macintosh HD" の下の "ユーザ" の下の "user"の下の「サイト」という フォルダ、ここに index.html という名前のファイルがあると思いますが、 このファイルを編集するか、別のファイルを index.html という名前で置く ことによって「あなたのパーソナルWebサイト」、つまり http://192.168.50.36/~user/ ここに自分で書いた内容にアクセスできるようになります。ここまでが基本事項。

ここからがCGIの話。MacOS Xに入ってるCGIを動作させるには、二つの方法があるようです。

  1. /Library/WebServer/CGI-Executables というディレクトリ以下に CGIスクリプトを置く。
  2. WWWサーバの設定ファイルを書き直して、自分の「ホームフォルダの"サイト"フォルダ」 以下にCGIスクリプトが置けるようにしてしまう。
この前者がいちばん手っ取り早い方法ではありますが、私個人としましては、 「自分のホーム」以外のファイルを好き勝手にいじることに大きな抵抗がありますので、 今回はこの後者の方法を取ることにしたいと思います。具体的にどうしたらいいかといえば。 /etc/apache2/users以下にある、 ユーザ名がuserのときは "user.conf" というファイルを 書き換えます。いろんな方法があると思いますが、私はこんな感じにしました。
  • 「ターミナル」というアプリを開き、そこで以下の緑文字部分を入力します:
    $ open /etc/apache2/users
    すると users フォルダの内容が、Finder で表示されるはずです。(表示されたら、 「ターミナル」は終了してOK)
  • ユーザ名がuserのときは "user.conf" というファイル (つまり、自分のユーザ名と同じ名前のファイル)をデスクトップにコピーします。
  • デスクトップ上にコピーした .conf ファイルを編集します。ポイントは以下。
    AllowOverride None
    この None となってる箇所を All などに書き換えます。 何に書き換えるかは、自分が使っている環境などを考慮して、総合的に判断してください (としか書きようがない‥)。
  • 書き換えた .conf ファイルを、 /etc/apache2/users以下に上書きコピーします。
  • WWWサーバの再起動を行います。 MacOS Xを再起動してもいいんですけど、 「システム環境設定」の「共有」の中にある「Web共有」というやつ、これを 一旦オフにしたのち再度オンにしたほうが、手順は多くなりますけど、早いと思います。
  • 「ホームフォルダの"サイト"フォルダ」のうち、CGIスクリプトを置きたいフォルダに .htaccessという名前のファイルを置きます。中身はこんな感じ:
    Options +ExecCGI
    AddType application/x-httpd-cgi .cgi
    すでに .htaccess があるときは、そのファイルに上記の内容を追加してやってください。
  • CGI ファイルを置きます。 CGIファイルの execute bits の設定は忘れずに。 (このへんの作業はFinderより「ターミナル」のほうがラクな気がします。Emacsを使ってる 人であれば M-x shell から Shell モードに入っての作業がお勧め、かな?)

注意点

  • サーバのログは/var/log/apache2/以下にあります。
  • どっかから持ち込んできたCGIスクリプトが どうしても「Server Internal Error」 となってしまう場合、改行コードを疑いましょう。とくに文字コードが Shift_JIS のものは 改行コードがCRLFになってることが多く、それだとうまく動作しない可能性があります。 改行については、下から2行目の、ファイル名などが表示される行(名称不明)に "(DOS)"という表示が出ていたら改行コードはCRLF‥みたいです。 改行コードの直し方ですけど、Emacs を使ってる場合は C-x RET fから sjis-unix など、文字コードの後ろに "-unix" を付けてやると 改行コードの変更(CRLFからLFのみに変更)をしてくれるみたいです。



[次] (Win)古いノートPC 2012/03b