ページタイトル【コンテンツ-目次-】
HomeContentsMac Every Day>Mac OS Xでサーバーごっこ 1-3
Go Home
目次
車いすガイド札幌
私設ガイド札幌
私設ガイド北海道
車いす関連リンク
リンクその他
Mac関連
作者について
家族のページ
更新経歴
  1. 初めに
  2. Apacheを起動する
  3. Terminalについて
  4. あると便利なアプリケーションについて
  5. Apacheの設定ファイルのパーミッションを変更する
  6. Apacheの設定ファイルを書き換える
  7. 付属のCGIを動作させる
  8. SSIのテスト
  9. perlのパスを変更する。

←Prev


  1. 付属のCGIを動作させる。

     「/LIbrary/WebServer/CGI-Executables/」にCGIの動作環境を得るprintenvと言うCGIがありますので、これを動作させてCGIのテストをしてみましょう。

     printenvのあるCGI-Executablesフォルダは、一般ユーザーでアクセス出来ますから、Finderで「コンピュータ」をクリックしMacOS Xのシステムの入っているボリュームを開くと「System」、「Applications」、「LIbrary」、「User」の4つのフォルダがあります。このLIbraryフォルダを下の図のように、「WebServer」、「CGI-Executables」とフォルダを開いていくと、printenvとcgi-testの2つのファイルが見つかります。もちろん、前回username.confを書き換えた時と同様にFinderの「フォルダへ移動…」のダイアログに「/LIbrary/WebServer/CGI-Executables/」と入力してもOKです。

    CGI-Executablesフォルダ

     printenvをFinderで複製を作り、printenv.cgiと名前を変更します。printenvを直接printenv.cgiと名前を変更してもかまいませんが、私は復帰が楽なのとオリジナルを保存して置くのが好きなので、複製を作って作業をしています。次にCGIは通常755のパーミッションで動作しますので、printenv.cgiのパーミッションを変更します。

    "chmod 755 "

     次にFinderウインドウからprintenv.cgiをドラッグ&ドロップします。

    ターミナル画面6

     上のterminalの画面は、printenvを複製しprintenv.cgiにリネームしたところで、一度パーミッションを確認し、次にprintenv.cgiのパーミッションを変更し、もう一度パーミッションを確認したところです。複製したprintenv.cgiは、オーナーがtoshioになっていますが、オリジナルはオーナーがrootですので、オリジナルをprintenv.cgiにリネームした場合は、"sudo chmod 755 "を入力しpasswordを入力します。

     これで、printenv.cgiはCGIとして動作可能になりましたので、Webブラウザでアクセスしてみましょう。「/LIbrary/WebServer/CGI-Executables/」内のCGIには、「http://127.0.0.1/cgi-bin/」または「http://localhost/cgi-bin/」でアクセス出来ますので、printenv.cgiにアクセスするには「http://127.0.0.1/cgi-bin/printenv.cgi」または「http://localhost/cgi-bin/printenv.cgi」とします。

     私の環境でのCGI Process Environmentです。このような表示が返ってくれば成功です。

     CGIは、上記の「/LIbrary/WebServer/CGI-Executables/」内と各ユーザーの「/Users/username/Sites/」内で動作しますので、次は自分のSiteフォルダの中でcgiを動作させてみましょう。自分のSiteフォルダの中にprintenv.cgiを移動します。このCGIにアクセスするには、「http://127.0.0.1/~username/printenv.cgi」または「http://localhost/~username/printenv.cgi」とします。先程と同じように表示されれば成功です。

  2. SSIのテスト

     SSIとはServer Side Includeの略で、サーバーがHTMLを送信する時に、HTMLの中にコメントの形で埋め込まれたコマンドを実行し、その結果をコメントに置き換えて送信する機能です。

     自分のSiteフォルダの中のindex.htmlの複製を作り、index.shtmlと名前を書き換えます。そしてこれをmiで開き<body>の次あたりに、以下の行を追加します。

    このファイルは
    <!--#config timefmt="%Y/%m/%d %X"-->
    <!--#echo var="LAST_MODIFIED"-->
    に更新されました。 

     Webブラウザで「http://127.0.0.1/~username/index.shtml」または「http://localhost/~username/index.shtml」にアクセスし、更新日時が追加されていれば成功です。

  1. perlのパスを変更する。

     これまでの作業でCGIは動作するようになったのですが、perlのスクリプトは1行目にperlのパスを書くようになっています。このパスがMacOS Xでは「/usr/bin/perl」なのですが、プロバイダなどのWebサーバーでは「/usr/local/bin/perl」が一般的なため、フリーで提供されているperlのCGIスクリプトを利用する場合や、MacOS Xで試していたスクリプトをプロバイダのサーバーで利用する場合に、その都度修正が必要になってしまいます。そこで、スクリプトに「/usr/local/bin/perl」と書かれていてもCGIが動くように「/usr/bin/」のシンボリックリンクを「/usr/local/bin/」として作ります。

     「local」フォルダは、システムの新規インストールで確認したところ存在していましたので、Terminalに次のコマンドを入力します。

    "cd /usr/local/"

     これでTerminalの作業ディレクトリがlocalに移動しました。次のコマンドを入力します。

    "sudo ln -s /usr/bin/ bin"

     これで「/usr/bin/」のシンボリックリンクが「/usr/local/bin/」として作られましたので、自分のSiteフォルダに移動したprintenv.cgiを使ってテストをしてみましょう。

     printenv.cgiをmiで開き1行目の「/usr/bin/perl」を「/usr/local/bin/perl」に変更し保存します。次にWebブラウザで「http://127.0.0.1/~username/printenv.cgi」または「http://localhost/~username/printenv.cgi」アクセスしCGI Process Environmentが表示されればOKです。

     これで、CGIの動作するローカルサーバーが手に入りました。フリーで配付されているCGIスクリプトなどを走らせて楽しんで下さい。

←Prev

HomeContentsMac Every Day>Mac OS Xでサーバーごっこ 1-3