Jun 23, 2005

Usersディレクトリ内でCGIを使う

Panther tiger

MacOSX(Panther)は/Library/WebServer/CGI-Executables/内ではCGIが使えますが、ユーザーWeb用ディレクトリ(Users/ユーザーの名前/Sites)内ではCGIを使える設定にはなっていません。ユーザーディレクトリのサイト内でもCGIを使えるようにするには以下の手順でおこないます。ちょっと高度な操作がいります。



webserver
ここでは使えるけど、

homesites
ここのサイト内では使えない。

siteicon



必要なもの

mac safari mi osx

  • Mac(Mac OS Xを搭載しているもの。10.3.x(Panther)で話は進みます)
  • Safari(またはShiira, Firefox, Mozilla, Omniweb, iCab, Camino, InternetExploreなど)
  • mi(またはJedit, テキストエディットなど)
  • Terminal
  • すこしの勇気
  • セキュリティーへの配慮
  • インターネットを構築してくれた方々への畏敬の念

設定

  1. 普段はMacの見えないところにしまわれているApacheの設定ファイルを修正します。

    これしかないように見えるけれど、じつは見えないファイルやフォルダがたくさん隠れている。



  2. Finderのメニューバーの移動から"フォルダへ移動..."を選び、普段は見えないフォルダに移動します。




  3. /etc/httpd/users/と入力します。




  4. フォルダが開きます。




  5. フォルダの中には"ユーザー名.conf"というファイルが入っているはずです。これを書き換えると"Users/ユーザーの名前/Sites"内でCGIが使えるようになります。



  6. 早速これを書き換えたいところですが、アクセス権の都合、直接はできません。

    開くとこんなダイアログが出てしまう。このまま作業を続けると書き換えても上書きできません。別名で保存することになります。

  7. そこで一度"ユーザー名.conf"をデスクトップに取り出します。(移動ではなくコピーされます)




  8. 編集に失敗したとき、元に戻せるように、もう一つどこか忘れないところにコピーしておくと安心です。

    書類フォルダの中に「サーバー設定バックアップ」などの名前をつけてコピーしておくと良いと思います。ついでにファイルネームに日付などを追加しておくと整理しやすく、トラブル時とても役にたったりします。


  9. デスクトップにおいた"ユーザー名.conf"をmiで開きます。




  10. 開くと以下のように書いてあるはずです。
    <Directory "/Users/ユーザー名/Sites/">
    Options Indexes MultiViews
    AllowOverride None
    Order allow,deny
    Allow from all
    </Directory>






  11. 以下のように書き加えます。

    <Directory "/Users/ユーザー名/Sites/">
    AddHandler cgi-script cgi
    Options Indexes MultiViews ExecCGI
    AllowOverride None
    Order allow,deny
    Allow from all
    </Directory>





  12. 改行コードがLF(UNIX)になっているか確認します。ここ非常に重要です。良く忘れます。
    code



  13. 保存をします。




  14. デスクトップにある"ユーザー名.conf"をドラッグアンドドロップで/etc/httpd/users/に移動させます。禁止マークが付きますがそのままゴー!です。




  15. アクセス権の関係で「"users"は変更できないので、項目"ユーザー名.conf"は移動できませんでした」という表示が出てきます。




  16. 認証を押します。




  17. とりあえず上書きコピーしてもいいか聞かれますので...




  18. 置き換えを実行します。




  19. 認証パスワードを求められますので入力しOKを押します。




  20. これで"ユーザー名.conf"の設定は終了。




設定の確認

設定が正しいかTerminalをつかって確認します。

ターミナルはアプリケーションフォルダのユーティリティフォルダの中にあります


  1. Terminalを起動させます。




  2. 次のコマンドを入力すると構文チェックしてくれます。
    apachectl configtest





  3. 問題がなければSyntax OKとでます。




Syntax OKと出たら、動作確認は終了です。ばっちり設定できてると思います。このチェックを忘れ、かつ"ユーザー名.conf"の構文が間違っていると、パーソナルWeb共有の開始も停止もうまくいかなくなることがあります。そのときはバックアップしておいたファイルを書き戻したあと、Macを再起動してあげてください。



「パーソナルWeb共有」の再起動

いまの設定を有効にするには「パーソナルWeb共有」を再起動する必要があります。再起動するにはアップルメニューから「システム環境設定」を開いて 「共有」パネルの「パーソナルWeb共有」にチェックを外して一度停止させ、もう一度チェックをつけ、開始させるだけです。この手順は「自分のMacでホームページを公開しよう」で紹介した通りです。
share


CGIの設置

実際にユーザーフォルダ内にCGIを/Users/ユーザー名/Sites/内に設置してちゃんと動くか確かめてみます。設置については「MacOSX (Panther)でCGI」を参考にしてチャレンジしてみてください。なお、/Library/Webserver/内ではCGI-Excutable以外ではCGIは使えませんでしたが、/Users/ユーザー名/Sites/内ではどこにおいても使えるようです。




ASKA BBSもサイトフォルダ内で正しく設定すればちゃんと動きます。





Trackback

No Trackbacks

Track from Your Website

http://earlybirds.ddo.jp/namahage/inegalog/trackback/tb.php?id=6
(言及リンクのないトラックバックは無視されます)

Comments in Forum

11 Comments