ブログサーバーを自前のサーバーからレンタルサーバーに移行しました。CGIも移行させたのですが、End of script output before headers: xxxxx.cgi
エラーになってCGIがうまく動作しない症状に見舞われました。
ちょっと前までちゃんと動作していたのに、サーバーのタイトルなどをちょっと変更しようとしただけで、CGIに関係しそうなところは変更していません。変更箇所を元に戻しても、やはりCGIは動作しません。色々検索して調べても間違ってはいなさそうです。文字コードも色々変えてみました。ファイルのパーミッションも間違えていません。「う~ん、分からん! 今日はここまで!」とVS Codeを閉じて、もう一度リロードしてみると、「あれ? ちゃんとCGI動作してるじゃん⁉」
レンタルサーバーにSSHでログインし、ファイルを修正していたのですが、その際にVisual Studio Code(VS Code)を使っていました。編集していたCGIを閉じても変わりませんでした。何だったのでしょうかね? 今日、もう一度確かめてみようと思い、VS CodeでSSH接続し、CGIファイルを開くとやはり動作しません。開いていたCGIファイルを閉じても同じく動作しません。SSHをログアウトしてVS Codeを閉じるとCGIが動作するようになりました。
そして、更にもう一度確かめようと思い、再度VS CodeでSSH接続し、CGIファイル、index.htmlファイルを開いてもちゃんと動作します。う~ん、何が起こっていたのでしょうか。
と、いうことで、どうしてもCGIが動作しないとお悩みの貴方、SSHをログアウトする、そして、もし、VS Codeを使っているようでしたら、VS Codeを終了してみてはいかがでしょうか。
VS Codeで直接ファイルを編集しようと横着な考えが甘かったのか、やはりviしか許されないのか(笑)
日本語を入力しなければ、viでも良いんですけどね。
また、はまった時に困らないように備忘録。