パーミッションもPealパスもあってるのにCGIが動かない
何度確かめても設定は合っている。
そもそも配布されているCGIファイルを少し変更してアップロードしただけだし、
すぐ終わる作業と思っていたんだけど。
なのに、
どのCGIを開いても500エラーになるんだが!?!?
そんなパニック状態に陥った私。
何かとんでもないやらかしをして、レンタルサーバーに負担かけて、banされたんか!?
そんなことまで頭を過った。
しかし、解決法はごく単純なことでした。
一時間以上、検索して試してダメで…を繰り返しましたが、
5秒で直りました。
単純すぎて引っ張るのは恥ずかしいので結論を早々に書きます。
500エラーの原因は改行だった
CGIファイルの改行コードがLFになってなかった
以上です。
パーミッションとかパスとか以前の問題でした。
何のことやら?と思った人・改行コードの変更方法が分からない人だけ続きをみてください。
改行コードってなんぞや
色んなブログで詳細は書いてあると思うので、
ここでは難しい話は省きます。
とにかく、改行コードというものがあって、それはOSによって違うわけなのです。
サーバーはLinuxというOSなので、私たち一般人が普段使用しているOSとは違いますよね。
私達の使っているOSの改行コードのまま、サーバーにアップロードしてしまうと、サーバー側では必要のない無駄な文字が勝手に入ってしまうことになります。
意図している中身とは違うものがアップロードされることになります。
なのでこの改行コードをLinux用の『LF』に変更しなければエラーが起きてしまうということなんですね。
改行コードを変える方法【VS Code】
VS Codeだと、ファイルを編集している時に右下に出てくるこれ。
この『CRLF』が改行コードになるので、『LF』に変更しましょう。
クリックすれば選択肢が出てくるはずです。
これで保存すれば改行コードがLFになる!超簡単!