• ベストアンサー

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のアップデートをしても、変わりません・・・。

質問者が選んだベストアンサー

  • ベストアンサー
  • -kit
  • ベストアンサー率57% (12/21)
回答No.1

エラーコード 500 だとすると、 CGI の設定はうまくいってて、 perl のスクリプトかパーミションがおかしいのか。。。 そのスクリプトは以下のようなコマンドラインでちゃんと動きますか? % example.cgi

genta888
質問者

補足

% (example).cgiとは? ? ↑例え .cgi・・・??

その他の回答 (14)

  • -kit
  • ベストアンサー率57% (12/21)
回答No.15

> 今度は、こんなエラー文が・・・ > > 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/ で動くことを確認してから、 上級コースを試した方がいいかと思います。

genta888
質問者

お礼

そうですね(^^  なんだか、自分の技術を過信していたかも(ナニ  (Windowsについては少しあるのですが、Linuxには・・・)  出直してきます_(._.)_

  • astronaut
  • ベストアンサー率58% (303/516)
回答No.14

なんだか滅茶苦茶なことになってるようですが… まず,/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 を削除

genta888
質問者

お礼

 回答ありがとうございます_(._.)_  仕事が溜まってきたので、暇を見つけながらちょくちょくとやってみたいと思います。 > 解) 以下の行をコメントアウト >   UserDir disable おもいっきり無効になっていました(;^_^A アセアセ… 少しずつですが、やってみたいと思います

genta888
質問者

補足

無効→有効の間違いです。失礼しました。(;^_^A アセアセ…

  • -kit
  • ベストアンサー率57% (12/21)
回答No.13

> 残念ながら、設定を初期化して初期値ディレクトリに置いても動きません・・・。 設定を初期化する必要はなかったのですが。。。 「AddHandler cgi-script .cgi .pl」とか また、いままでの設定のし直しですよ。

genta888
質問者

お礼

スミマセン_(._.)_ 今度は、こんなエラー文が・・・ 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&Ccedil;&macr;08&middot;&icirc;12&AElig;&uuml; 21&raquo;&thorn;10&Ecirc;&not;37&Eacute;&Atilde; Apache/2.0.40 (Red Hat Linux) ユーザディレクトリは見えるのですが、 そのサブディレクトリ内のデータ(index.html)が見えません・・・(TT (例:http://www.example.net/~hogehoge/hushiana/) よろしくお願いします_(._.)_

  • -kit
  • ベストアンサー率57% (12/21)
回答No.12

> 許可がありません」と返ってきます(TT; では chmod a+x printenv.cgi で実行パーミションを与えてみてください。 ちなみに、 sh printev.cgi では動くかと思います。

  • -kit
  • ベストアンサー率57% (12/21)
回答No.11

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"; }

genta888
質問者

補足

許可がありません」と返ってきます(TT;

  • xjd
  • ベストアンサー率63% (1021/1612)
回答No.10

>/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の修正とディレクトリの権限を適切に指定するだけで動きます。

genta888
質問者

補足

httpd-devel-2.0.40-21 っていうのが出てないのですが・・・?

  • -kit
  • ベストアンサー率57% (12/21)
回答No.9

> /var/www/cgi-binの中が空っぽなんですが・・・(TT じゃぁ、(問題の切り分けとして)“純粋に” CGI が正常に動くかのテストはできないんですかね。。 動かしたい CGI はあると思うので、 それは動きますか?

genta888
質問者

補足

残念ながら、設定を初期化して初期値ディレクトリに置いても動きません・・・。

  • -kit
  • ベストアンサー率57% (12/21)
回答No.8

> それが無いということはありえるのでしょうか? さぁ。。。どうやって apache をインストールしたのにかも依るかと思いますが。。。 ※apache のバージョンもちょっと古いようですし。。 httpd.conf で「ScriptAlias /cgi-bin/」の設定は 最初どこになってましたか?

genta888
質問者

補足

手をつけていない状態のhttpd.confによりますと、 /var/www/cgi-bin/になっています・・・ (バージョンは、Apache/2.0.40 (Red Hat Linux) です。)

  • -kit
  • ベストアンサー率57% (12/21)
回答No.7

あっと、初心者の方でしたね。。 コマンドラインでプログラムを動かす場合は、 「/usr/local/apache/htdocs/.../hogehoge.cgi」というようにフルパスで指定するか、 CGI があるディレクトリに cd で行き、 ./hogehoge.cgi というように「./」付きでやってみてください。。

genta888
質問者

補足

いや、そうではなくて。。。 /var/www/cgi-binの中が空っぽなんですが・・・(TT 8の時は有ったような・・・

  • -kit
  • ベストアンサー率57% (12/21)
回答No.6

HTML ファイルを置くディレクトリと同じ並びで、 「cgi-bin」というディレクトリがあると思います。 この中に「printenv」と「test-cgi」あると思いますので、これらを CGI を動かしたいディレクトリにコピーし、コマンドラインと HTTP の CGI で動くかどうかを試してみてください。 うまく動けば CGI の設定はできているかと思います。

genta888
質問者

補足

あの~、 それが無いということはありえるのでしょうか?

関連するQ&A