No. | 質問・回答 | おれい |
|
[110064] CGIが実行できない |
|
|
OS: CentOS
ソフトウェア名/バージョン:Apache/2.0.52 (CentOS)
CGIについて質問です。
/var/www/cgi-bin/にCGIをいれて、属性も777にしているのですが、500エラーで実行できません。
httpd.confにもExecCGIと書いてあり
Perlのパスも間違っていません。
どうすれば使えるようになるのでしょうか。
よろしくお願いします。
世蹴 2008年10月20日19:43
|
|
|
|
[110066] |
エラーログには何かありませんでしょうか。標準から変えていなければ
/var/log/httpd/error_log
です。
シャイン (30) 2008年10月20日21:39
|
|
|
|
[110086] |
errorログはこんな感じです。
[Tue Oct 21 18:47:32 2008] [error] [client 192.168.11.3]
attempt to invoke directory as script: /var/www/cgi-bin/
[Tue Oct 21 18:47:37 2008] [error] [client 192.168.11.3]
(2)No such file or directory: exec of '/var/www/cgi-bin/index.cgi' failed
[Tue Oct 21 18:47:37 2008] [error] [client 192.168.11.3]
Premature end of script headers: index.cgi
いまいち分かりません…
世蹴 2008年10月21日19:12
|
|
|
|
[110170] |
SELinuxが原因かもしれません。rootでgetenforceを実行し、EnforcingならSELinuxが効いています。setenforce 0で一時的にSELinuxを無効にしてCGIが実行できるか調べてください。セキュリティのためには、setenforce 1でSELinuxを有効にしておいてください。SELinuxが原因の場合、/var/log/audit/audit.logにログが残ります。
他の原因では、CGIがスクリプトであれば、最初の#!で指定するインタプリタの指定が間違っている、ファイルの改行コードがDOS形式になっている、インタプリタに対応していない漢字コードを使っているなどが考えられます。確認してみてください。
シャイン (30) 2008年10月23日06:41
|
|
|
|
[110244] |
SELinuxとSuexecも無効にしましたが500エラーが…
エラーは Premature end of script headers: index.cgi の一行のみが出ますね。
気になる点があるのですが、perl -c 1.cgi とコマンド入れてみると
「Use -S to search $PATH for it.」と出たので
perl -S 1.cgi といれると
「Can't find 1.cgi on PATH.」と出ましたなぁ…
何がなんだかサッパリ…
#!/usr/bin/perl --
print "Hello world!!\n";
を実行してもエラーがでました…
尚、インタプリタも改行コードも問題なしです。
迷惑掛けますが引き続きお願いします…
世蹴 2008年10月24日20:10
|
|
|
|
[110249] |
> SELinuxとSuexecも無効にしましたが500エラーが…
原因ではない設定は元に戻しておいてくださいね。
> 「Use -S to search $PATH for it.」と出たので
ファイルが無いときのメッセージにしては、手元のLinuxと違いますし、検索してもヒットしないメッセージですね。まあ、ファイルが無いということだと思いますが。
> 気になる点があるのですが、perl -c 1.cgi とコマンド入れてみると
1.cgi のあるディレクトリをカレントにしていますか?
1.cgi にパスを付けて指定してもだめでしょうか。
と言いますか、これは初歩的な内容ですので、もしすでにされていて実行できないとすると、まったく原因は不明です。
シャイン (30) 2008年10月24日22:53
|
|
|
|
[110610] |
返信が遅れてすみません。
原因不明ということはわかったので、とりあえず弄りまくってどうにかがんばります(汗
ありがとうございました。
世蹴 2008年11月3日17:52
|
|
|
|
( 参照数:9059 日平均:1.6 ) |
|
〜 回答の受付を終了しました 〜 |