ページタイトル【コンテンツ-目次-】
HomeContentsMac Every Day>Mac OS Xでサーバーごっこ 1-2
Go Home
目次
車いすガイド札幌
私設ガイド札幌
私設ガイド北海道
車いす関連リンク
リンクその他
Mac関連
作者について
家族のページ
更新経歴

  1. 初めに
  2. Apacheを起動する
  3. Terminalについて
  4. あると便利なアプリケーションについて
  5. Apacheの設定ファイルのパーミッションを変更する
  6. Apacheの設定ファイルを書き換える
  7. 付属のCGIを動作させる
  8. SSIのテスト
  9. perlのパスを変更する。

←PrevNext →


  1. Apacheの設定ファイルのパーミッションを変更する

     .cgiや.plの拡張子を持つCGIのファイルの実行やSSIを使用できるように、Apacheの設定ファイルを一部書き換えます。設定ファイルは、「/private/etc/httpd/httpd.conf」と「/private/etc/httpd/users/username.conf」です(usernameは、自分のユーザー名が入ります)。各サイトの情報によると「/private/etc/httpd/httpd.conf」を書き換えるとマルチユーザーで使用している場合、全ユーザーに適用され、「/private/etc/httpd/users/username.conf」の場合は、各ユーザー別に適用されると言う事なので、ここではusername.confを書き換える方法を説明します。また、他のUNIXと互換のため、「/etc/」が「/private/etc/」のシンボリックリンクになっていますので、「/etc/httpd/users/username.conf」でも同様にアクセスする事が出来ます。

     username.confはパーミッションを変更しないと書き換え出来ないので、Terminalを使ってパーミッションを変更しますが、まずFinderの「移動」メニューから「フォルダに移動…」を選択します。

    メニュー フォルダに移動

     ダイアログに「/etc/httpd/users/」と入力し「移動」ボタンをクリックします。

    移動ダイアログ

     Finderの表示をカラムにしていると下記の様に表示されると思います。私の場合、子供たちを含め5人分のユーザーを登録していますので、この中のtoshio.confを書き換えます。


    usersフォルダ

     いよいよTerminalを起動します。上記のFinderウインドウと重ならないようにTerminalのウインドウを配置するとドラッグ&ドロップがしやすくなります。Terminalを起動すると、下記の様に表示されます。

    ターミナル画面1

     toshioのところには、usernameが入ります。まず、usersフォルダの各ファイルのパーミッションを確認してみましょう。userフォルダは一般ユーザーではアクセス出来ないので、sudoコマンドと組み合わせてコマンドを入力します。半角小文字で"sudoスペースlsスペース-alスペース"と入力します。

    "sudo ls -al "

     それからFinderウインドウからusersフォルダをTerminalウインドウにドラッグ&ドロップします。

    ドラッグ&ドロップ

     これでパスが入力されます。もちろん、タイプしてもかまいませんが慣れないうちはこの方が早いと思います。最後にreturnキーを押し入力を完了します。sudoコマンドの実行には管理者のpasswordを要求されますので、passwordを入力します。ユーザーを1人しか登録していなければ、そのユーザーのpasswordが管理者のpasswordになっています。

    ターミナル画面2

     上の図の様に、passwordは表示されません。各username.confの所有者は"root"、グループメンバーは"wheel"、パーミッションが"-rw-r--r--"と表示されます。これは下記の事を表しています。

    ディレクトリかファイルかを表しています。
    "d"→ディレクトリ
    "-"→ファイル
    r 読込みを許可する。不許可ならば -
    w 書込みを許可する。不許可ならば -
    x 実行(ディレクトリの場合は検索など)を許可する。不許可ならば -
    ファイルの所有者のパーミッション グループメンバーのパーミッション その他のユーザーのパーミッション
    パーミッション説明

     "-rw-r--r--"は、最初の1文字目以外を許可を"1"、不許可を"0"の2進数で表現するとファイルの所有者が"110"、グループメンバーが"100"、その他がユーザーが"100"となります。さらに各ユーザーを1桁で表現出来るように、これを8進数に直しますと"110"が"6"、"100"が"4"となりますので、"644"と表現されます。r = 4、w = 2、x = 1としてユーザー毎に合計してもOKです。このパーミッションでは、所有者の"root"以外書込みが出来ませんので、グループメンバーも書込みの出来る"664"に変更します。これは、デフォルトで管理者権限を持つユーザーは、"wheel"グループに所属しているからです。

     先程と同様に半角小文字で"sudoスペースchmodスペース664スペース"と入力します。

    "sudo chmod 664 "

     それからFinderウインドウから目的のusername.confを、Terminalウインドウにドラッグ&ドロップしパスを入力してreturnキーを押します。今度はpasswordを要求されないかもしれません。sudoコマンドを実行して5分間はpasswordなしでsudoコマンドを受け付けるためで、時間が過ぎているとpasswordの入力を求められます。(これ以降、returnは省略します。)

     パーミッションの変更がうまくいった事を確認するため、もう一度usersフォルダの各ファイルのパーミッションを確認します。

    ターミナル画面3

     目的のusername.conf、この図ではtoshio.confのパーミッションが"-rw-rw-r--"と変更されている事が確認出来ます。

  1. Apacheの設定ファイルを書き換える。

     パーミッションを変更したusername.confをテキストエディターで開きます、ここでは、miを使います。miを起動し、Finderウインドウからusername.confをDockのmiアイコンにドラッグ&ドロップし開きます。パーミッションの変更をしていないとここで「書き込み不可で開いています」と注意されます。開いたファイルは、「<Directory "/Users/toshio/Sites/">」のところが「<Directory "/Users/username/Sites/">」で、次のようになっているはずです。

    <Directory "/Users/toshio/Sites/">
        Options Indexes MultiViews
        AllowOverride None
        Order allow,deny
        Allow from all
    </Directory>

     これを次のように変更します。(追加部分を赤い字で示します。)

    <Directory "/Users/toshio/Sites/">
        AddType text/html .shtml
        AddHandler server-parsed .shtml
        AddHandler cgi-script .cgi
        AddHandler cgi-script .pl
        Options Indexes MultiViews ExecCGI FollowSymLinks Includes
        AllowOverride None
        Order allow,deny
        Allow from all
    </Directory>
    

     追加した物の意味は、あまり自信がありませんが、おおよそ次の通りです。

    • AddType text/html .shtml
      SSIなどで使用する.shtmlをhtmlとして認識する。SSIについては、後述。

    • AddHandler server-parsed .shtml
      .shtmlをSSIで使用する。

    • AddHandler cgi-script .cgi, AddHandler cgi-script .pl
      .cgiと.plをCGIのスクリプトで使用する。

    • ExecCGI
      CGIの実行を許可する。

    • FollowSymLinks
      シンボリックリンクを認識する。

    • Includes
      SSIの実行を許可する。

     変更出来たらそのまま保存します。これで設定ファイルの変更は終了です。

     Terminalからテストを行いましょう。次のコマンドを入力します。

    "sudo /usr/sbin/httpd -t "

     passwordを要求されたら入力して下さい。Syntax OKが返ればOKです。

    ターミナル画面4

     Apacheを再起動するため、Web共有を停止し、もう一度開始ボタンをクリックします。

    ※ 以下のTerminalのコマンドは、間違っている可能性がありますので、システム環境設定で再起動していただくと確実です。(2002/09/10 追記)

     Apacheの再起動は、Terminalからも行えます。次のコマンドを入力します。

    "sudo httpd restart "

    ターミナル画面5

     次はCGIのテストです。がんばりましょう。

←PrevNext →

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