- ベストアンサー
アパッチの設定がうまくできません。
すみません、質問します。 現在、OS X10.2にてアパッチの設定をしようと、 http://www.futomi.com/lecture/macosx/prepare.html のページを参考にターミナルをいじっているのですが、 なぜか、全てのプロセスを終えても正常にcgiが実行できません。 (上記ぺージを参考に、 http://127.0.0.1/~username/cgi-bin/xxx.cgi として printenv.cgiを実行しようとしています。) 症状としては、cgiが動作せずに、ソースがそのまま表示されている ような感じです。 理由が分からなくて困っているのですが、どんな原因が 考えられるでしょうか? os10.2にしてからの症状として、 参考にしているページにあるターミナルのキャプチャ画像と比べて、 [localhost:~] とあるべきところが私のマシンでは[Macintosh:~]と なっているのが気になりますが、どうしたらいいのでしょう。 また、/private/etc/httpd のなかに httpd.conf.prefixが 見あたらないのですが、どういうことでしょう。 現状は、以下のようになっています。 [Macintosh:~] username% ls -F /private/etc/httpd httpd.conf httpd.conf.org mime.types httpd.conf.bak magic mime.types.default httpd.conf.default magic.default users/ どなたか、よろしければ教えて下さい。 よろしく御願いします。
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
> コピペそのままに<Directory /Users/*/Sites/cgi-bin>としてた) 間違ってませんよ。 「*」を使う記法も、httpd.confでは認められてます。 詳しくは、apacheのヘルプや参考書をどうぞ。 ここらへんの話ぐらいなら、apacheの本であれば、どれを買っても、参考になると思います。 例えば、 http://www.oreilly.co.jp/out/apache/ などは、1997年の本ですが、今でも十分役立ちます。 迷ったら、2、3冊くらいまとめて買って読むくらいの心構えで。 > cp: /private/etc/httpd/httpd.conf: Permission denied root権限が必要ですので、 sudo cp myhttpd.conf /etc/httpd/httpd.conf のように、コマンドsudoを使って、実行します。 詳しくは、「man sudo」を御覧になるか、UNIXの参考書などをどうぞ。 # 一応回答してますが、ユーザーのホームディレクトリ配下で、CGIを実行させ事って、自分一人で使っているMacなら、あんまり意味ないですよ。 素直に、フォルダ/Library/WebServer/CGI-Executables/にCGIスクリプトを配置するだけで済むのですから。
その他の回答 (2)
- osamuy
- ベストアンサー率42% (1231/2878)
> http://www.futomi.com/lecture/macosx/prepare.html 上記ページに従って、httpd.confの末尾に、 <Directory /Users/osamuy/Sites/cgi-bin> Options +ExecCGI AddHandler cgi-script .cgi </Directory> とやって、Web共有を開始したら、 osamuy% w3m -dump_both 'http://localhost/~osamuy/cgi-bin/printenv.cgi' HTTP/1.1 200 OK Date: Sat, 28 Sep 2002 14:28:06 GMT Server: Apache/1.3.26 (Darwin) PHP/4.1.2 Connection: close Content-Type: text/html <!doctype html public "-//W3C/DTD HTML 4.0/EN"> <html> <head> <title>CGI Process Environment</title> </head> 以下略 ――と、とくに問題なく動きました。 上記の設定は、「フォルダ/Users/osamuy/Sites/cgi-binに存在している、接尾辞が.cgiのファイルは、CGIスクリプトとみなす」というものです。ソースが露出すると言うことは、CGIスクリプトと思われてないせいで、AddHanderの指定か、Directoryのパスの指定にミスっているのではないかしら。 ここらへん、Mac OS X特有というものでもないので、本屋さんとかで、apacheについての書籍を2、3冊買ってきて、手元においとくと便利ですよ。 > [localhost:~] とあるべきところが私のマシンでは[Macintosh:~]となっているのが気になりますが、どうしたらいいのでしょう。 今回の件では、関係ないと思います。 詳しくは、tcshの設定法について、googleで検索してみて下さい。 > また、/private/etc/httpd のなかに httpd.conf.prefixが見あたらないのですが、どういうことでしょう。 今回の件では、関係ないと思います。 基本的に、httpd.confが正しければOKですので。 詳しくは、apacheについての書籍等をどうぞ。
お礼
詳しい解説、ありがとうございました。 osamuyさんの解説と照らし合わせながら再度チャレンジしたのですが、 デスクトップに移したhttpd.confに書き加える部分が間違っていたことに気付きました。 (<Directory /Users/username/Sites/cgi-bin>とすべきところを コピペそのままに<Directory /Users/*/Sites/cgi-bin>としてた) で、修正したのですが、まだうまくいきません。 httpd.confを元の場所に戻すときに cp: /private/etc/httpd/httpd.conf: Permission denied と出ます。 どうしたらいいのでしょう。 良ければ教えて下さい。御願いします。 (アパッチの本などは、今日買いにいったのですが、 結局何がいいのか分からず買えませんでした。)
- asuca
- ベストアンサー率47% (11786/24626)
chmod 705 /Library/WebServer/CGI-Executables/printenv.cgi は実行していますか?実行しようとしているcgiファイルのパーミッションの確認をしてください。 >[localhost:~] とあるべきところが私のマシンでは[Macintosh:~]と なっているのが気になりますが これは特に気にする必要はありません。ただ単にシェルのprofileの所でプロンプトの書き方が変わっただけですので。
お礼
たびたびのお返事ありがとうございます。 パーミッションに問題があるのかな、と思い何度か 試してみたのですが、なかなかうまくいかないんですよね。 引き続き、試してみたいと思います。 ありがとうございました。
補足
回答ありがとうございます。 ご指摘の通りやってみようと思います。 Apacheの本ですが、やはり買って勉強してみます。 >自分一人で使っているMacなら、あんまり意味ないですよ その通りなのですが、自宅サーバーという環境をつくってみたいなぁ という理由でチャレンジしているのです。 その場合、サーバ保護のための知識がすごく必要になるのでしょうが。。 がんばります。いろいろとありがとうございました。