サーバーマシンを新しいマシンへ変更すると、CGIやPHPのスクリプトが動かなくなるケースが多い。
特にCGIの場合、古いものを使っていることが多く、仕様が変わっていたりするケースもある。
さて今回、新しいマシンでフォームメールが「500 Internal Server Error」が出て動かなくなってしまう、という事象が出た。
このエラーだけだと詳細が分からないのでとりあえずログを見ると、
「End of script output before headers: postmail.cgi」
というエラーが出ていた。
何らかの理由でCGIスクリプトが異常終了した、ということなのだろうが、これでも原因が分からない。
こうなると、SSHでコンソールで、直接コマンドを入力して実行してみるしかない。
./postmail.cgi
と入力したら、
「Can't use 'defined(%hash)' jcode.pl line 684」
というエラーメッセージが出てきた。
どうやら、postmail.cgi から呼び出される jcode.pl の684行目に問題があるらしい。
さっそく Google検索で、このエラーメッセージ
「Can't use 'defined(%hash)' jcode.pl line 684」をそのまま入れてみると、
次のような答えた返ってきて、そのとおりに修正したら、見事にcgiが動作した。
従来のGoogle検索だけでも探せば答えにたどり着いたかもしれないけれども、
解決策がストレートに出てきたのは嬉しい。
以下、GoogleのAI回答:

0 件のコメント:
コメントを投稿