• ベストアンサー

ApacheでCGIが正しく動かない。

RedHatLinux8をインストールして、 Webサーバーを立てよう~と思い立ててみました。 Apache2.0.40です。 一応htmlファイルはのぞけるようになったんですが、 CGIがちょっとおかしくて・・・ #!/usr/bin/perl print "Content-type: text/html\r\n\r\n"; print "Hello, World."; ↑を書いたtest.plはHello, Worldとちゃんと表示されました。 しかし、掲示板・カウンターを開くと・・・ 「ログファイルを開くことができません」 という主旨のメッセージが表示され、正しく実行できません。 ./log.txt とちゃんと指定しているんですが・・・ そのログファイルを開くとサーバーがCGIをして認識しているらしく、 「InternetServerError」が出て開けない・・・。 CGIの属性は755 ログも緩くして755に設定しました。 それでも状況は変わりません。

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

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

私も最新版を試してみましたが,以下の手順で動きました.(RedHat-8.0) ・アーカイブを /var/www/cgi-bin で展開 # cd /var/www/cgi-bin # lha -x /tmp/mkakikomitai.lzh ・mkakikomitai.cgi の perl のパスを修正 ・スクリプトの改行コードを変換 # dos2unix mkakikomitai.cgi ・cgi の実行許可 # chmod 755 mkakikomitai.cgi これで cgi は動くようになったので,あとはエラーを見ながら(いい加減ですが…)以下を実行 # mkdir old # chmod 666 mkakikomitai.cnt # chmod 666 mkakikomitai_cnt.txt # chmod 666 mkakikomitai.txt これでもうまくいかないようなら,cgi を設置した場所や,apacheの設定で変更した箇所など,詳しい情報を補足してください.

その他の回答 (6)

  • GINO
  • ベストアンサー率36% (18/50)
回答No.7

自信はないのですが、おいらが似たような状態になったときはディレクトリのパーミッションがだめでした。 ディレクトリも書き込み可かどうか確認してみはどうでしょうか?

mejikatan
質問者

お礼

ここでまとめてお礼させて頂きます。 なんとか自己解決しました(^^;) 原因はperl.confの設定ミスで、 本の通りにやってしまったのが原因と思われます。 余分な行をコメントアウトしながら試行錯誤を重ね、 見事に動きました~。 しかし文字化けが酷く日本語表示は不可能・・・ これは自分で調べたいと思います。 今まで回答して下さった皆さん、どうもありがとうございました。 いろいろと勉強になったのでとても良かったと思っています。

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

試しにVer0.871をダウンロードしてみました。 mkakikomitai.cgiの先頭に「設置方法構成」が記載されているので、 それにしたがって権限設定・配置したら問題なく動きましたけど。 perlのパスが/usr/local/bin/perlになってたので、変更した程度ですね。 文字化けが激しいので、少し修正が必要かも。 とりあえず、動作確認報告でした。 >./log.txt とちゃんと指定しているんですが・・・ ところでlog.txtの説明などどこにも見当たらないのですが?

mejikatan
質問者

補足

画面が真っ白になったのは、文字コードの変換ミスで 中がめちゃめちゃになったからだと思われます。 ちゃんとしたCGIをもってきて設置してもやはり・・・ 「ログファイル(./mkakikomitai.txt)のオープンに失敗しました 」 と出ます。自分なりに考えたんですが・・・ http://サーバーマシンアドレス/cgi/main/mkakikomitai.txt cgi ←CGI設置フォルダ main←掲示板CGI設置フォルダmkakikomitai.txt←ログ ↑のアドレスを指定すると・・・ InternetServerError と出ます。多分サーバー側がログをCGIとして認識しているのが原因かと(w) 設定ミスでしょうか?

  • yosa
  • ベストアンサー率16% (28/170)
回答No.4

ログファイルを置くためのディレクトリを作成し、その ディレクトリの属性を777にして、ログファイル自体を 666にしてみたら、どうですか?。 これでできないなら、cgiのソース等みないとわからないですね。

mejikatan
質問者

補足

logフォルダを作って、所有者apacheグループapache にして、中のログファイルも上と同様に設定しました。 (このような設定でいいんでんしょうか?) 一応エラーメッセージは消えましたが・・・ 今度は真っ白画面になってしまいました(w こんなときエラーの原因を突き止める方法というのは 無いのでしょうか? CGIは配布されているもっと書き込み隊を使用しています。 http://tackysroom.com/cgi_mkakikomitai.htm 本体は設定項目以外は弄っていません。

noname#48234
noname#48234
回答No.3

こんにちは。 ログのパーミッションを777や766、666にしてみたらどうでしょうか? どういうスクリプトをお書きなのか分かりませんが、 掲示板やカウンターでログ・ファイルのパーミッションが755では訪問者が書き込めなくなってしまうような気がします。

mejikatan
質問者

補足

666,766,777等にしてみましたがどれも結果は同じでした。 どうしてなんでしょう・・・・

  • osamuy
  • ベストアンサー率42% (1231/2878)
回答No.2

ログのパーミッションを0666(rw-rw-rw-)にしてみては。

mejikatan
質問者

補足

やってみます。

  • yosa
  • ベストアンサー率16% (28/170)
回答No.1

cgiファイルのオーナーは、apacheのユーザーですか? そうでなければ、属性は666だと思います。 あと、「ログファイルを開くことができません」のメッセージ は、apacheが生成しているのですか?。それともCGIの 中のロジックが生成しているのですか?。

mejikatan
質問者

補足

CGIが生成しています。 ログが開けなかったらエラーが出てくるみたいです。

関連するQ&A