3

cgi スクリプトを実行しようとしていますが、長いスクリプトなのでここには貼り付けませんが、他のサーバーでは動作しますが、何らかの理由で新しいサーバーで実行しようとすると内部サーバー エラー (500) が発生し、ここでApacheログを確認すると、次のようになります。

[Fri Mar 30 08:38:29 2012] [error] [client 199.212.76.124] (2)No such file or directory: exec of '/var/www/cgi-bin/test.cgi' failed
[Fri Mar 30 08:38:29 2012] [error] [client 199.212.76.124] Premature end of script headers: test.cgi
[Fri Mar 30 08:38:29 2012] [error] [client 199.212.76.124] File does not exist: /var/www/htdocs/favicon.ico
[Fri Mar 30 08:41:11 2012] [error] [client 199.212.76.124] (2)No such file or directory: exec of '/var/www/cgi-bin/test.cgi' failed
[Fri Mar 30 08:41:11 2012] [error] [client 199.212.76.124] Premature end of script headers: test.cgi
[Fri Mar 30 08:41:11 2012] [error] [client 199.212.76.124] File does not exist: /var/www/htdocs/favicon.ico
[Fri Mar 30 08:41:12 2012] [error] [client 199.212.76.124] (2)No such file or directory: exec of '/var/www/cgi-bin/test.cgi' failed
[Fri Mar 30 08:41:12 2012] [error] [client 199.212.76.124] Premature end of script headers: test.cgi
[Fri Mar 30 08:41:12 2012] [error] [client 199.212.76.124] File does not exist: /var/www/htdocs/favicon.ico
[Fri Mar 30 08:41:15 2012] [error] [client 199.212.76.124] (2)No such file or directory: exec of '/var/www/cgi-bin/test.cgi' failed
[Fri Mar 30 08:41:15 2012] [error] [client 199.212.76.124] Premature end of script headers: test.cgi
[Fri Mar 30 08:41:15 2012] [error] [client 199.212.76.124] File does not exist: /var/www/htdocs/favicon.ico
[Fri Mar 30 08:41:20 2012] [error] [client 199.212.76.124] (2)No such file or directory: exec of '/var/www/cgi-bin/upload.cgi' failed
[Fri Mar 30 08:41:20 2012] [error] [client 199.212.76.124] Premature end of script headers: upload.cgi
[Fri Mar 30 08:41:20 2012] [error] [client 199.212.76.124] File does not exist: /var/www/htdocs/favicon.ico
[Fri Mar 30 08:41:21 2012] [error] [client 199.212.76.124] (2)No such file or directory: exec of '/var/www/cgi-bin/upload.cgi' failed
[Fri Mar 30 08:41:21 2012] [error] [client 199.212.76.124] Premature end of script headers: upload.cgi
[Fri Mar 30 08:41:21 2012] [error] [client 199.212.76.124] File does not exist: /var/www/htdocs/favicon.ico
[Fri Mar 30 08:41:29 2012] [error] [client 199.212.76.124] (2)No such file or directory: exec of '/var/www/cgi-bin/upload.cgi' failed, referer: http://bla.com
[Fri Mar 30 08:41:29 2012] [error] [client 199.212.76.124] Premature end of script headers: upload.cgi, referer: http://bla.com

ファイルのchmod、perlモジュールの再インストール、構成の再チェックなど、すべてを試しました!!!! 何が悪いのかわからない!!! しかし、スクリプトが壊れていないことは保証できます!

よろしく

4

3 に答える 3

2

perl -w /var/www/cgi-bin/upload.cgi でスクリプトを実行します。

HTTPヘッダーを書き出す必要があります

Content Type: text/html
[blank line]

そうでない場合は、スクリプトがうまく機能していません。他のサーバーが変数を渡して、スクリプトが適切なヘッダーを作成しなくなる可能性があります。

このコードをスクリプトの to に貼り付けます。スクリプトが正しくないように見えても機能している場合は、bug.print("Content Type: text/html\n\n"); が見つかりました。

print("Content Type: text/html\n\n");

よろしく、

于 2012-03-30T11:04:56.147 に答える
2

実行してみてください:

perl -c /var/www/cgi-bin/upload.cgi

perldoc perlrun からの引用:

   -c   causes Perl to check the syntax of the program and then exit
        without executing it.  Actually, it will execute "BEGIN",
        "UNITCHECK", "CHECK", and "use" blocks, because these are
        considered as occurring outside the execution of your program.
        "INIT" and "END" blocks, however, will be skipped.
于 2012-03-30T07:05:48.133 に答える
1

他にチェックすべきことは

  • 最初のような perl の場所 (#!/usr/..)
  • dos2unix ファイル、ASCII 文字なし
  • CGI セットアップを排除するために別の場所にある他の CGI スクリプト
  • ディレクトリパーマ?それが影響するかどうかはわかりません
于 2012-03-31T13:24:45.593 に答える