前章では、Mac OS X のデフォルトの状態をご理解いただきました。しかしホームディレクトリ内では CGI が動作しません。本章では、ホームディレクトリ内に置いた CGI が動作できるよう、Apache の設定を変更します。つまり、http://127.0.0.1/~futomi/cgi-bin/xxx.cgi で CGI が動作するようにします。
※以下、 futomi と記載されている場所は、あなたのアカウント名に置き換えてご覧下さい。
前章では、Mac OS X のデフォルトの状態をご理解いただきました。しかしホームディレクトリ内では CGI が動作しません。本章では、ホームディレクトリ内に置いた CGI が動作できるよう、Apache の設定を変更します。つまり、http://127.0.0.1/~futomi/cgi-bin/xxx.cgi で CGI が動作するようにします。
※以下、 futomi と記載されている場所は、あなたのアカウント名に置き換えてご覧下さい。
本章では、http://127.0.0.1/~futomi/cgi-bin/xxx.cgi というURLでCGIを動作させるようにすることが最終目的ですので、まずは、cgi-bin というフォルダを作っておきましょう。ホームディレクトリ内の Sites というフォルダを開いてください。この中に、cgi-bin という名前でフォルダを作成しましょう。現時点では、cgi-bin 内に CGI ファイルを置いても、その中身がそのまま表示されてしまいます。
Apache の設定は、テキストファイル httpd.conf にすべてかかれています。また、デフォルトでは、/private/etc/httpd 内にあります。しかし、このファイルを、Max OS X の Aqua 上、つまり Finder 上から見ることはできません。従って、Terminal からコマンドで確認します。まずは、Terminal を起動してください。そして、次のコマンドを実行してください。入力していただくコマンドは、青色の部分です。緑色の部分はコマンドを入力したあと、出力された結果です。
[localhost:~] futomi% ls -F /private/etc/httpd httpd.conf httpd.conf.prefix mime.types httpd.conf.bak magic mime.types.default httpd.conf.default magic.defalt users/ |
Apache の設定ファイル httpd.conf は、/private/etc/httpd の中にありましたね。このファイルを修正することで、Apache の設定を変更することが可能となります。
Terminal で httpd.conf の場所は確認しましたが、Aqua 上で見ることができません。従って、Aqua から見れる場所に httpd.conf をコピーしましょう。引き続き、Terminal から次のコマンドを実行してください。
| [localhost:~] futomi% cp /private/etc/httpd/httpd.conf ./Desktop |
これは、httpd.conf をデスクトップ上にコピーします。いかがですか?デスクトップ上に httpd.conf が現れましたか?現れたら、このファイルをテキストエディタで開きます。しかし、改行コードを確認、変更ができるものを使ってください。httpd.conf は Mac の改行コード(CR)で保存されると、正常に動作しないのです。かならず、保存する際には、UNIX の改行コード(LF)を使わなければいけませんので、注意しましょう。また、ここでは、行数を指定した説明をしますので、行数表示もできるテキストエディタを使ってください。
コピーした httpd.conf をテキストエディタで開くと、Mac OS 10.1 の場合 419 行目あたりに、Mac OS 10.2 では 423 行目あたりに、次の設定が記述されているはずです。(行数は、インストールされている Apache のバージョンによって異なる場合がありますので、ご注意ください。)
#<Directory /home/*/public_html> # AllowOverride FileInfo AuthConfig Limit # Options MultiViews Indexes SymLinksIfOwnerMatch IncludesNoExec # <Limit GET POST OPTIONS PROPFIND> # Order allow,deny # Allow from all # </Limit> # <LimitExcept GET POST OPTIONS PROPFIND> # Order deny,allow # Deny from all # </LimitExcept> #</Directory> |
この設定は、各ユーザのホームディレクトリに関する設定です。しかし各行先頭に「#」が入っているため、無効になっています。「#」を削除すれば有効になるのですが、この設定は Max OS X の場合では使えません。従って、この記述の次から、次の設定を加えてください。
<Directory /Users/*/Sites/cgi-bin>
AllowOverride FileInfo AuthConfig Limit
Options +ExecCGI
AddHandler cgi-script .cgi
</Directory>
|
これで httpd.conf の修正は完了ですので、テキストエディタで上書き保存してください。しかし、必ず改行コードを「LF」にして下さい。
次に、オリジナルの httpd.conf のバックアップをとります。Terminal から、次のコマンドを入力して下さい。
| [localhost:~] futomi% cd /private/etc/httpd [localhost:/private/etc/httpd] futomi% sudo cp ./httpd.conf ./httpd.conf.org Password: |
パスワードを求めてきますので、あなたのアカウントのパスワードを入力して return キーを押してください。これで、オリジナルの httpd.conf を、httpd.conf.org という名前でコピーしたことになります。万が一、Apache の挙動がおかしくなったら、バックアップした httpd.conf.org を、httpd.conf という名前に戻せば、元に戻ります。
次に、先ほど編集した httpd.conf をオリジナルの httpd.conf に上書きします。引き続き、Terminal から次のコマンドを実行してください。
| [localhost:/private/etc/httpd] futomi% cd [localhost:~] futomi% sudo cp ./Desktop/httpd.conf /private/etc/httpd/ |
もし、パスワードを求めてきたら、先ほどと同様にパスワードを入力して return キーを押してください。
以上で準備完了です。しかしこのままでは設定が有効になりませんので、Apache を再起動します。前章で Apache を起動したのと同様に、[システム環境設定]→[共有]を立ち上げてください。
■ Mac OS 10.1 以前の場合

■ Mac OS 10.2 以降の場合

となっているはずですので、一度、「停止」ボタンを押して Apache を終了します。そして、「開始」ボタンを押して、再度 Apache を起動してください。
これで、ホームディレクトリ内の Sites 内に作成した cgi-bin ディレクトリ内においた CGI ファイルが動作するようになりました。
| << 戻る | 次へ >> |