※ ChatGPTを利用し、要約された質問です(原文:cgiがうまく動作しません。)
cgiがうまく動作しない原因と解決方法とは?
このQ&Aのポイント
質問者は現在redhatlinux9とApache2.0.40を使用しています。cgiを置いたディレクトリにブラウザでアクセスすると、Internal Server Errorが表示されます。ログを見ると、Can't locate ./jcode.plというエラーメッセージが表示されています。
質問者はwforum.cgiの11行目以下のrequire './jcode.pl'; require './fold.pl'; require './wf_init.cgi'; を require 'jcode.pl'; require 'fold.pl'; require 'wf_init.cgi'; に変更して試してみましたが、今度はCan't locate fold.plというエラーメッセージが表示されます。
質問者はperlプログラムの文法、パーミッション、改行コード、FTP転送の際の転送モードを確認済みであり、問題はないと考えています。また、test.cgiは正常に動作しています。そこで、このような場合の原因として考えられるのは、必要なファイルが正しい場所にないか、パーミッションが正しく設定されていない可能性があります。
はじめまして。
現在独学でlinuxの勉強をしている者です。検索をしたり本を読んだりして対策を試みたのですがどうしても解決できないため、質問させていただきます。
環境は
redhatlinux9
Apache2.0.40
です。
cgiを置いたディレクトリにブラウザでアクセスすると、
Internal Server Error
と出てしまいます。
ログを見ると、
[error] 6099: ModPerl::Registry: Can't locate ./jcode
.pl in @INC (@INC contains: /usr/lib/perl5/5.8.0/i386-linux-thread-multi /usr/li
b/perl5/5.8.0 /usr/lib/perl5/site_perl/5.8.0/i386-linux-thread-multi /usr/lib/pe
rl5/site_perl/5.8.0 /usr/lib/perl5/site_perl /usr/lib/perl5/vendor_perl/5.8.0/i3
86-linux-thread-multi /usr/lib/perl5/vendor_perl/5.8.0 /usr/lib/perl5/vendor_per
l /usr/lib/perl5/5.8.0/i386-linux-thread-multi /usr/lib/perl5/5.8.0 .) at /var/w
ww/cgi-bin/bbs/wforum.cgi line 11.!
と表示されています。試しにwforum.cgiの11行目以下の
require './jcode.pl';
require './fold.pl';
require './wf_init.cgi';
を
require 'jcode.pl';
require 'fold.pl';
require 'wf_init.cgi';
と変更してみたところ、今度は
(略)Can't locate fold.pl(略)
at /var/www/cgi-bin/bbs/wforum.cgi line 12.!
というエラーログが表示されました。
perlプログラムの文法、パーミッション、改行コード、FTP転送の際の転送モードは確認済みのため、問題ないと思われます。また、ここの過去ログを参考にして作成した
#!/usr/bin/perl
print<<EOF
Content-type: text/html
<HTML><BODY>CGI works Good.</BODY></HTML>
EOF
というtest.cgiは動作可能でした。
こういった場合、どのような原因が考えられるでしょうか。どうかご教授ください。よろしくお願いします。
お礼
>ちゃんと書くようにしましょう. うっかりしていました。今後は気をつけます。すみませんでした。 無事に解決しました。 httpd.confの設定をデフォルトの状態に戻したらcgiが正常に動作するようになりました。 お手数をおかけしてしまい、申し訳ありませんでした。今後もよろしくお願いします。 失礼します。