このページは福井県立大学の田中求之が2006年1月まで運用していた Mac のサーバ運用に関する会議室 「Web Scripter's Meeting」の記録です。情報が古くなっている可能性がありますのでご注意ください。

各ユーザーごとにCGIを実行させる方法

発言者:ヒサ
( Date Wednesday, September 04, 2002 15:45:29 )


はじめまして、ヒサと申します。
Mac OS X10.1.2環境で各ユーザーごとにCGIを実行させる事が
できず、困っております。

エラー内容は、
403 Forbidden
You don't have permission to access /~ddwnet/cgi-bin/namazu.cgi on this server.です。

参考書を読んで設定を直したファイル
・http.confのAddHandler cgi-script .cgiのコメントアウト
・username.confにExecCGIの追加

どなたか、ご存じでしたら教えて頂けないでしょうか?
よろしくお願いします。

TOM neko さんからのコメント
( Thursday, September 05, 2002 00:18:34 )

わたしのページですが参考になると思います。

→  超簡単 Mac OS XのローカルでCGI

ヒサ さんからのコメント
( Thursday, September 05, 2002 13:56:24 )

TOM neko さん お返事ありがとうございます。

「超簡単 Mac OS Xのローカル」でCGIのページを見て、
設定しましたがまだエラーが続きます。
他に直すべきところがあるのでしょうか?

修正した場所
username.confんいAddHandler cgi-script .cgiを追加
httpd.confのInclude /private/etc/httpd/usersがコメントアウトされているかの確認

よろしくお願いします。

しあわせのツボ さんからのコメント
( Thursday, September 05, 2002 14:50:14 )

まさかとは思いますが、
CGI自体にexecパーミッションを付与してありますか?

ヒサ さんからのコメント
( Thursday, September 05, 2002 15:43:47 )

しあわせのツボ さん お返事ありがとうございます。

勉強不足ですみません。execパーミッションとは何でしょうか?
全文検索のnamazuを使用しています。/Liblary/WebServer/CGI-Executables/では、うまく動作しますが、各ユーザーごとにはエラーが返ってきます。

しあわせのツボ さんからのコメント
( Thursday, September 05, 2002 17:58:15 )

いわゆるパーミッションの実行権限です。
ローカルだからとすっかり忘れてて、自爆したことがあるので(苦笑)

…なんとなく嫌な予感がしたこと。
httpd.confを書き直した後、Apacheを再起動してますよね?

ヒサ さんからのコメント
( Thursday, September 05, 2002 18:23:34 )

しあわせのツボ さん ありがとうございます。

各ファイルのパーミッションは、
namazu.cgi=755/cgi-bin=777で設定しました。

あと、httpd.confは、書き直した後、Web共有で再起動を行いました。

今井真人 さんからのコメント
( Thursday, September 05, 2002 19:09:39 )

>cgi-bin=777

ディレクトリのパーミッションだと思いますが、これだと実行が止められて
しまう可能性があります。最低レベルは755です。

ヒサ さんからのコメント
( Thursday, September 05, 2002 19:36:55 )

今井真人 さん お返事ありがとうございます。

ディレクトリのパーミッションを755 drwxr-xr-x cgi-binへ
変更しましたが、エラーが続きます。

大変ご迷惑をおかけしすいません。

TOM neko さんからのコメント
( Saturday, September 07, 2002 00:30:40 )

となるとusername.confがおかしいのかも。
全文を教えてもらえますか。httpd.confも知りたいですが、
それはさすがにここに投稿するには大きすぎるので、できるなら
どこかにテキストとしてアップロードするとかで。

今井真人 さんからのコメント
( Saturday, September 07, 2002 07:56:51 )

パーミッションですけど、chmod -R 755 cgi-binコマンドにより
cgi-binディレクトリ全体をこのパーミッションにしてみてください。

それからCGIが書き込みするようなファイルだけchmod 666 とします。

これでパーミッション関係はまず完ぺきです。

ヒサ さんからのコメント
( Monday, September 09, 2002 14:28:58 )

返事が大変遅くなりましてすみません。
TOM neko さん 今井真人 さん お返事ありがとうございます。

TOM neko さん
>どこかにテキストとしてアップロードするとかで。

すみません。どこにアップロードしていいのかわからないので、
メールにてお送りしてもよろしいでしょうか?


今井真人 さん
>パーミッションですけど、chmod -R 755 cgi-binコマンドにより
>cgi-binディレクトリ全体をこのパーミッションにしてみてください。

パーミッションは下記の通りに変更しました。
drwxr-xr-xr-x cgi-bin
drwxr-xr-xr-x index
-rwxr-xr-xr-x namazu.cgi

よろしくお願いします。



TOM neko さんからのコメント
( Monday, September 09, 2002 15:58:06 )

メールは、やめて下さい。自分のサイトが無いなら、どこかのフリーの
Webスペースを探してアップロードですよ。

まあ、httpd.confの方は、CGIの実行のためには全く変更する必要は
ありませんから、変更前のバックアップを取ってあるなら戻して下さい。
で、username.confだけをここに書き込んでみてください。

ヒサ さんからのコメント
( Tuesday, September 10, 2002 23:41:18 )

TOM neko さん すみませんでした。

Webスペースにhttpd.confをアップロードできました。
大変ご迷惑をおかけしまして、すみませんがよろしくお願いします。

username.conf
<Directory "/Users/namazu/Sites/">
    AddHandler cgi-script .cgi
    Options Indexes MultiViews ExecCGI
    AllowOverride None
    Order allow,deny
    Allow from all
</Directory>


→  httpd.conf

TOM neko さんからのコメント
( Wednesday, September 11, 2002 00:58:29 )

httpd.confとusername.confの内容自体には問題ありませんね。

ひょっとして、ですが、
>403 Forbidden
>You don't have permission to access /~ddwnet/cgi-bin/namazu.cgi on this server.
というエラーが出るのだからユーザ名は「ddwnet」ですよね。
ということはusername.confの本当のファイル名はddwnet.confのはずだし、
その1行目は<Directory "/Users/ddwnet/Sites/">なのは間違いない
でしょうか?

そして、そのファイルは/etc/httpd/users/にありますね?

今井真人 さんからのコメント
( Wednesday, September 11, 2002 06:24:01 )

mime.typesというファイルはないのでしょうか?

Linuxの場合ですが、以下のものを追加してCGIを運用してます。
application/x-httpd-cgi                         cgi pl

TOM neko さんからのコメント
( Wednesday, September 11, 2002 09:21:57 )

> application/x-httpd-cgi                         cgi pl

AddHandler cgi-script .cgi があれば必要ありません。
AddHandler は Apache1.1 以降から使えるようになったのですが、
最近はもっぱらこちらを使うようです。


→  AddHandler ディレクティブ

ヒサ さんからのコメント
( Thursday, September 19, 2002 19:33:42 )

TOM neko さん・今井真人 さん お返事ありがとうございます。

いつも素早い回答なのに、書き込みが遅くなりましてすみません。
パソコンの故障で回線に接続できなかったので(言い訳ですみません)

申し訳ありませんが、もう一度回答をお願いします。

>TOM neko さんからのコメント
>そして、そのファイルは/etc/httpd/users/にありますね?
はい、上記の場所にddwnet.confを置いてます。
名前も<Directory "/Users/ddwnet/Sites/">で間違いありません。
他に直すべき所があるのでしょうか?

--これまでの設定は--
1.ユーザー名.confにAddHandler cgi-script .cgi/ExecCGI
2.パーミッションの変更 chmod -R 755
変更後のファイル
drwxr-xr-x  5 ddwnet staff 126 Sep 3 18:27 cgi-bin
drwxr-xr-x 58 ddwnet staff 1928 Sep 3 17:31 index
-rwxr-xr-x  1 ddwnet staff 497164 Sep 3 17:18 namazu.cgi
です。

よろしくお願いします。

TOM neko さんからのコメント
( Saturday, September 21, 2002 03:34:26 )

ちょっと原因がわかりませんね。
ためしに新しいアカウントを作って、1から設置してみると
うまくいったりするかもしれません。
究極的にはOSの再インストールからはじめれば、絶対成功
しますけど。(OSのアップデータが入ってるでしょうから、
上書きインストールでなく新規インストールからすること
になります)

Momo さんからのコメント
( Thursday, October 03, 2002 17:22:44 )

はじめまして。初心者のMomoと申します。
私はOS 10.1ですが、下記のページを参考にしながら
設定したところうまくできました。

---
OS 10.0の時は、以前の方法で設定できました。
(OS 10.2にアップグレードしても、CGI設定が引き継がれて
いたため、何も変更する必要はありませんでした。)

ただ、別ボリュームにそれぞれ新規に
・OS10.0インストール→10.1にアップグレード後に設定した場合
・OS10.2をインストールした場合
のいずれもCGIを動かすことができなかったため、10.1については
下記ページを参考にしてhttpd.confを変更しました。


→  futomi's CGI Cafe/Apache の設定

Momp さんからのコメント
( Friday, October 04, 2002 14:59:42 )

追記
後半部分を訂正させてください。

 > OS 10.0の時は、以前の方法で設定できました。
 > (OS 10.2にアップグレードしても、CGI設定が引き継がれて
 > いたため、何も変更する必要はありませんでした。)

OS10.1xに既に各ユーザごとにCGIを使えるよう設定後
OS10.2にアップグレードした場合は、従来どおりの方法で
httpd.confを変更するだけでよかったと思います。


てぽ さんからのコメント
( Saturday, January 18, 2003 13:59:52 )

あの、今さらですが、

/etc/httpd/users/に、ddwnet.confの修正前ファイルとか置いてませんか?
(ddwnet.conf.orgとか?)
これが、後に設定されるためではないですか?

今さらですが(^_^;)

TOM neko さんからのコメント
( Saturday, January 18, 2003 16:48:26 )

おお、それは盲点でした。
Include /private/etc/httpd/users
ですから、置いてあるすべてのファイルを読み込んでしまいますね。
Include /private/etc/httpd/users/*.conf
なら良かったのに。

ヒサさん読んでるかな?

「超簡単 Mac OS XのローカルでCGI」
にも注意書きを入れようと思います。ありがとうございます。

ハル さんからのコメント
( Tuesday, January 20, 2004 19:57:56 )

初心者ですが,もし誰かみていたら返信をお願い致します.
様々なページを参考にCGIを使ってみようと試みたのですが,うまくいきません.
OS10.3だと,CGI-Executablesの中にprintenv.cgiというものが存在しないのです.
パンサーでCGIを使いたいときの設置の仕方を教えてください.
よろしくお願いします.
そして,いまひとつわかっていないのですが,ここ↓を参考にしているのですが,
 futomi's CGI Cafe/Apache の設定
あまり理解できていません.ふつうにどっかのサイトで落としたCGIを
cgi-binというホルダーに入れてwebサーバにアップして,そこのリンクを自分のページ
の表示したい部分に書けば,CGIに飛んで表示されることができと思うのですが,
それだと,簡単なのになぜ,自分のHDのSitesのフォルダに入れるのでしょう?
このフォルダは,FTPとして繋がることになっているということなのでしょうか?
すいませんが,誰かもし知っている人がいましたらお教えください m(__)m

森下 さんからのコメント
( Tuesday, January 20, 2004 21:13:04 )

あなたのマックが、インターネット上で直接WWWの
サービスを提供しているサーバではないのでしたら、
普通にWebサーバのcgi-binにFTPなりでアップすれば
OKです。

自分のHDのSitesフォルダに入れる…、というのは、次の場合に限ります。
(1)あなたのマックが、WWWのサービスを公開しているWebサーバである時。
(2)プロバイダなどのWebサーバにアップロードする前に、手もとの環境で動作確認をしたい時。

ハル さんからのコメント
( Tuesday, January 27, 2004 22:09:28 )

>森下さん
ありがとうございます.やっと理解できました.(^o^)/