Nginx + fcgiwrap + Python の環境を作り、Python スクリプトを CGI として実行できるようにしたのですが、error.log に下記のエラーメッセージが表示されてしまい、ページが全く表示されない状況になってしまいました。

2022/10/14 11:51:04 [error] 19946#19946: *43 upstream prematurely closed FastCGI stdout while reading response header from upstream, client: (IPアドレス), server: _, request: "GET (uri) HTTP/1.1", upstream: "fastcgi://unix:/var/run/fcgiwrap.socket:", host: "(ホスト名)"

CGI として動作させたい Python スクリプトにエラーがあると、このエラーが表示されてスクリプトの実行が止まってしまうことがわかりましたので、ソースコードを徹底的にチェックしてエラーが出ないようにしたのですが、それでもエラーメッセージが表示されてしまいました。

少々時間を浪費してしまいましたが、ふと、ヘッダーに Content-Type を出力したあとの空行を出力していないことに気が付き、空行を出力するようにしたところ、エラーは解消しました。

修正前

print('Content-Type: text/html; charset=utf-8')

修正後

print('Content-Type: text/html; charset=utf-8')
print('')

本当にポカミスでした。

カテゴリー: 開発関係

0件のコメント

コメントを残す

アバタープレースホルダー

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください