よく知られているように、MacOSX10.2は、Perlによるcgiスクリプトを実行できる環境がととのっている。
Apacheのconfigを修正すれはSSIも利用可能だ。
テストファイルの実行(2つのファイルがデフォルトで用意されている)
Library/WebServer/CGI-Executables/printenv
Library/WebServer/CGI-Executables/test-cgi
→ http://localost/cgi-bin/tprintenv
→ http://localost/cgi-bin/test-cgi
なお以下の場所がApacheのデフォルトのindex.htmlの置き場所。
Library/WebServer/Documents
→ http://localost/index.html
ここに各国言語用のindex.htmlが置かれている。ブラウザの言語の設定をかえることで、日本語または英語のページを見ることができる。
各ユーザーのホームはUsers/ユーザ/Sitesになる
→ http://localost//~ユーザ/index.html
cgiには実行権が必要(x)。cgiを実行するのはサーバーソフトであり、そのユーザーは「www」となる(結局、Windows2000などと同じく、「Everyone」ということだろうか)。全ユーザーに実行権を設定する。
ターミナルを起動し※ルートでアクセスする
[localhost:/] root# cd /Library/WebServer/CGI-Executables
に移動し、パーミッションを変更する
[localhost:/] root# chmod o+x printenv test-cgi
このコマンド[chmod]で、その他のユーザー[o]に設定されていなかった、実行権[x]を与えたことになる。
◎結果
% ls -l
-rw-rw-r-x 1 root admin 5398 Sep 3 2001 printenv
-rw-rw-r-x 1 root admin 757 Sep 3 2001 test-cgi
(前から→u=オーナー、g=グループ、o=ユーザー、a=すべてのユーザ、最後のxが実行権)
※MacOSX10.1は、Apache/1.3.20。
・cgiスクリプトの改行コードはLF(UNIX)で、CR+LFなどは作動しない。
・スクリプトには、すべてのユーザーに「読み出し」「実行」権を与える。
-rw-rw-r-x
・Perlのパスは「/usr/bin/perl」となる。よってスクリプトは始まりは
#!/usr/bin/perl
・Windowsの改行コードの変換
viのコマンドモードで
:%s/^M//g
(^Mはcontrol+V、control+Mの順に入力する)
・ターミナルでperlを実行すれば一気に変換可能。
|