本章では、http://localhost/cgi-bin/xxx.cgi でCGIが動作させる方法を説明していきます。そして、自分のホームディレクトリでCGIが動作する環境を構築します。つまり、http://localhost/~futomi/xxx.cgi でCGIが動作する環境を構築します。また、最後に、この開発環境におけるApacheのエラーログの見方を説明します。
※ 以下、 futomi と記載されている場所は、あなたのアカウント名に置き換えてご覧下さい。
本章では、http://localhost/cgi-bin/xxx.cgi でCGIが動作させる方法を説明していきます。そして、自分のホームディレクトリでCGIが動作する環境を構築します。つまり、http://localhost/~futomi/xxx.cgi でCGIが動作する環境を構築します。また、最後に、この開発環境におけるApacheのエラーログの見方を説明します。
※ 以下、 futomi と記載されている場所は、あなたのアカウント名に置き換えてご覧下さい。
まず、CGI を実行させるようにするには、レンタルサーバで CGI をセットアップするのと同様にパーミッションを変更しなければいけません。ここでは、/Library/WebServer/CGI-Executables 内に CGI ファイルを用意して試してみましょう。そして、パーミッションの変更方法を理解してください。
以下の通り、フォルダ CGI-Executables を開いてください。
フォルダ CGI-Executalbles 内に test.cgi を作成して保存してください。test.cgi には次のように記述しておきます。
test.cgi を保存する際には、必ず改行コードを LF としてください。改行コードを指定して保存できるテキストエディタを使ってください。
次に、パーミッションを変更します。Mac OS X 上でファイルのパーミッションを変更する方法は2通りあります。一つは、ターミナルからUNIXコマンドで変更する方法です。もう一つは、SCPソフトを使って変更する方法です。
まずは、UNIXコマンドでパーミッションを変更してみましょう。以下の通り、Mac OS X 付属のターミナルを起動してください。
ターミナル画面上で、次のコマンドを入力して実行してください。
上記コマンドは、test.cgi のパーミッションを705に変更します。コマンドを入力して、最後にreturnキーを押して下さい。何もエラーが表示されなければ、正常にパーミッションが変更されたことになります。
ブラウザーのアドレス欄に、http://localhost/cgi-bin/test.cgi を入力してアクセスしてみて下さい。ブラウザーに hello と表示されればOKです。
次に、UNIXのコマンドはどうも苦手という方のために、SCPソフトで変更する方法をご紹介いたします。Mac OS X は sshが利用可能です。レンタルサーバなどで提供されているサーバと同様な手順でパーミッションを変更することができるのです。ただし、ファイルの所有者(オーナー)が、あなたのアカウントでないと変更できません。
Mac OS X はデフォルトでは sshの機能は無効になっていますので、それを有効にします。Apacheを起動したときと同様に、[Machintosh HD]→[アプリケーション]→[システム環境設定]を起動してください。システム環境設定画面が開いたら、共有を選択してください。
Mac OS X では、sshのことを「リモートログイン」と呼んでいます。共有設定画面で「リモートログイン」にチェックを入れてください。これでsshを使ってMacにログインできるようになります。
リモートログイン機能を有効にしたら、SCPソフトで自分のマシンに接続します。サーバ名には「localhost」を指定して下さい。ユーザ名とパスワードは Mac OS X 上のご自分のアカウントとパスワードを指定して下さい。ここでは、Mac OS X 対応のFTPソフトである Transmit をご紹介します。Transmit はFTPだけでなくSCPにも対応しています。サーバ接続設定は次の通りにして下さい。
| サーバ | localhost |
|---|---|
| ユーザ名 | Mac OS X で設定した管理者アカウント (現在、Mac OS X にログインしているユーザ名) |
| パスワード | Mac OS X で設定した管理者パスワード |
| プロトコル | SFTP |
当サイトでは、Transmit でのパーミッション変更方法を紹介していますので、あわせてご覧下さい。
Mac OS X はデフォルトの状態ではホームディレクトリにある「サイト」フォルダ内ではCGIが動作しない設定になっています。Mac OS X にインストールされているApacheは、ホームディレクトリごとに設定ファイルが分かれており、それを編集します。
もしあなたのユーザー名が "taro" であれば、taro.conf があるはずです。ファイル名についてはご自身の環境にあわせて読み替えてください。
このホームディレクトリごとの設定ファイルですが、残念ながら簡単にFinderから見ることはできません。そのため、ターミナルからviエディタを使って直接編集します。
もしviの使い方が分からない場合は、「Finderからシステムファイルにアクセスする方法」をご覧ください。
エディタを使ってこのファイルを開くと、次のような設定になっています。
これを次の通りに書き換えます。変更または追加の部分は赤字で示しています。
設定ファイルを保存したら、Apacheを再起動します。
「Web共有」のチェックを外してから、再度、チェックを入れてください。これでWebサーバが再起動します。
あなたのホームディレクトリの「サイト」フォルダ内にCGIを設置してみましょう。
![]()
次の内容を test.cgi として「サイト」フォルダ内に保存してください。
test.cgi を保存する際には、必ず改行コードを LF としてください。改行コードを指定して保存できるテキストエディタを使ってください。
次にターミナルを起動して、test.cgi のパーミッションを705に変更します。
前述したとおり、パーミッションは、FTP ソフトを使って変更することも可能です。
これでCGIの仕込みは完了です。ブラウザーから http://localhost/~futomi/printenv.cgi にアクセスしてみてください。ブラウザーに hello と表示されればOKです。futomi の部分は、あなたのアカウント名に読み替えてください。
CGIを設置したけれども Internal Server Error になって原因が分からないということがあるでしょう。その場合、Apacheのエラーログに手がかりがあるものです。ここでは、Apacheのエラーログを見てみましょう。
Apacheのエラーログは、/private/var/log/apache2/error_log に出力されます。残念ながら、Finderを使って見ることはできませんので、ターミナルを使います。ターミナルを起動したら次のコマンドを実行してください。
これでターミナル上に、エラーログの内容がリアルタイムで表示されるようになります。新たにエラーが発生するたびに、画面がスクロールしながらターミナル上に表示されていきますので、Webアプリケーション開発ではとても便利です。
終了したい場合は、[control]+[C] を押してください(controlキーを押しながらCキーを押します。)。
次章からは、PHPが動作するようApacheの設定を変更していきます。