- ベストアンサー
Red Hat Linux 9.0 でWebを公開したのですが・・・Pert.3
たびたび問題が起きました(;^_^A アセアセ… CGIが動かないのに加え、httpも動きません・・・ (Access forbidden!との表示) トップは動くのですが、その中にあるユーザディレクトリが見れません。 どなたかお力をお貸し下さい。 前質問 Pert.1 Red Hat Linux 9.0 でWebを公開したのですが・・・ http://oshiete1.goo.ne.jp/kotaeru.php3?q=614762 Pert.2-1(ミス Red Hat Linux 9.0 でWebを公開したのですが・・・Pert.2 http://oshiete1.goo.ne.jp/kotaeru.php3?q=617045 Pert.2-2 Red Hat Linux 9.0 でWebを公開したのですが・・・Pert.2 http://oshiete1.goo.ne.jp/kotaeru.php3?q=617184 参考にしたHP http://www.apache.jp/docs/howto/cgi.html#scriptalias http://acorn.zive.net/~oyaji/www/apache_linux.htm http://oshiete1.goo.ne.jp/kotaeru.php3?q=602630 ↑ちなみに試してみましたが、500エラーの内容が変わっただけでした。 perlのアップデートをしても、変わりません・・・。
- みんなの回答 (15)
- 専門家の回答
質問者が選んだベストアンサー
エラーコード 500 だとすると、 CGI の設定はうまくいってて、 perl のスクリプトかパーミションがおかしいのか。。。 そのスクリプトは以下のようなコマンドラインでちゃんと動きますか? % example.cgi
その他の回答 (14)
- -kit
- ベストアンサー率57% (12/21)
> 今度は、こんなエラー文が・・・ > > Access forbidden! > You don't have permission to access the > requested object. It is either read-protected > or not readable by the server. httpd を動かしているであろう nobody さんが、 該当ファイルの読み込みの許可がない、と言っているので、 home directory(~hogehoge) で、 chmod -R a+rx hushiana とすれば、この件は解決するかと思います。 で、ずっと思っているのですが、 まず、/cgi-bin/ で動くことを確認してから、 上級コースを試した方がいいかと思います。
お礼
そうですね(^^ なんだか、自分の技術を過信していたかも(ナニ (Windowsについては少しあるのですが、Linuxには・・・) 出直してきます_(._.)_
- astronaut
- ベストアンサー率58% (303/516)
なんだか滅茶苦茶なことになってるようですが… まず,/etc/httpd/conf/httpd.conf を初期状態に戻して, やりたいことを順番に片づけませんか? 1./home/hoge/public_html/ を http://host.domain/~hoge/ で公開したい. 解) 以下の行をコメントアウト UserDir disable 以下の行の # を外す # UserDir public_html 2./home/*/public_html/ で cgi を許可したい. 解) #AddHandler cgi-script .cgi の # を外す. # <Directory /home/*/public_html> <略> # Options MultiViews .... <略> # </Directory> の3カ所の # を外し,Options に ExecCGI を追加. 3.さらに,/home/*/public_html/ 以下の任意のディレクトリでも CGI を許可したい. 解) /usr/sbin/suexec を削除
お礼
回答ありがとうございます_(._.)_ 仕事が溜まってきたので、暇を見つけながらちょくちょくとやってみたいと思います。 > 解) 以下の行をコメントアウト > UserDir disable おもいっきり無効になっていました(;^_^A アセアセ… 少しずつですが、やってみたいと思います
補足
無効→有効の間違いです。失礼しました。(;^_^A アセアセ…
- -kit
- ベストアンサー率57% (12/21)
> 残念ながら、設定を初期化して初期値ディレクトリに置いても動きません・・・。 設定を初期化する必要はなかったのですが。。。 「AddHandler cgi-script .cgi .pl」とか また、いままでの設定のし直しですよ。
お礼
スミマセン_(._.)_ 今度は、こんなエラー文が・・・ Access forbidden! You don't have permission to access the requested object. It is either read-protected or not readable by the server. If you think this is a server error, please contact the webmaster Error 403 www.hoge.net 2003ǯ08·î12Æü 21»þ10ʬ37Éà Apache/2.0.40 (Red Hat Linux) ユーザディレクトリは見えるのですが、 そのサブディレクトリ内のデータ(index.html)が見えません・・・(TT (例:http://www.example.net/~hogehoge/hushiana/) よろしくお願いします_(._.)_
- -kit
- ベストアンサー率57% (12/21)
> 許可がありません」と返ってきます(TT; では chmod a+x printenv.cgi で実行パーミションを与えてみてください。 ちなみに、 sh printev.cgi では動くかと思います。
- -kit
- ベストアンサー率57% (12/21)
printenv.cgi とかでファイルにして、 テストしてみてください。 -- #!/usr/bin/perl ## ## printenv -- demo CGI program which just prints its environment ## print "Content-type: text/plain\n\n"; foreach $var (sort(keys(%ENV))) { $val = $ENV{$var}; $val =~ s|\n|\\n|g; $val =~ s|"|\\"|g; print "${var}=\"${val}\"\n"; }
補足
許可がありません」と返ってきます(TT;
- xjd
- ベストアンサー率63% (1021/1612)
>/var/www/cgi-binの中が空っぽなんですが >8の時は有ったような・・・ 自宅サーバのRedHat9では以下のApacheパッケージがインストールされていますが、 /var/www/cgi-bin配下は空です。 # rpm -qa | grep http <ENTER> httpd-2.0.40-21.3 redhat-config-httpd-1.0.1-18 httpd-devel-2.0.40-21 libghttp-1.0.9-7 httpd-manual-2.0.40-21.3 cgiもhttpd.confの修正とディレクトリの権限を適切に指定するだけで動きます。
補足
httpd-devel-2.0.40-21 っていうのが出てないのですが・・・?
- -kit
- ベストアンサー率57% (12/21)
> /var/www/cgi-binの中が空っぽなんですが・・・(TT じゃぁ、(問題の切り分けとして)“純粋に” CGI が正常に動くかのテストはできないんですかね。。 動かしたい CGI はあると思うので、 それは動きますか?
補足
残念ながら、設定を初期化して初期値ディレクトリに置いても動きません・・・。
- -kit
- ベストアンサー率57% (12/21)
> それが無いということはありえるのでしょうか? さぁ。。。どうやって apache をインストールしたのにかも依るかと思いますが。。。 ※apache のバージョンもちょっと古いようですし。。 httpd.conf で「ScriptAlias /cgi-bin/」の設定は 最初どこになってましたか?
補足
手をつけていない状態のhttpd.confによりますと、 /var/www/cgi-bin/になっています・・・ (バージョンは、Apache/2.0.40 (Red Hat Linux) です。)
- -kit
- ベストアンサー率57% (12/21)
あっと、初心者の方でしたね。。 コマンドラインでプログラムを動かす場合は、 「/usr/local/apache/htdocs/.../hogehoge.cgi」というようにフルパスで指定するか、 CGI があるディレクトリに cd で行き、 ./hogehoge.cgi というように「./」付きでやってみてください。。
補足
いや、そうではなくて。。。 /var/www/cgi-binの中が空っぽなんですが・・・(TT 8の時は有ったような・・・
- -kit
- ベストアンサー率57% (12/21)
HTML ファイルを置くディレクトリと同じ並びで、 「cgi-bin」というディレクトリがあると思います。 この中に「printenv」と「test-cgi」あると思いますので、これらを CGI を動かしたいディレクトリにコピーし、コマンドラインと HTTP の CGI で動くかどうかを試してみてください。 うまく動けば CGI の設定はできているかと思います。
補足
あの~、 それが無いということはありえるのでしょうか?
- 1
- 2
補足
% (example).cgiとは? ? ↑例え .cgi・・・??