CGIが動かなかったときの対処法
クライアントさんのCGIが急に動かなくなったと連絡があり
その時の対処法の紹介です。
-->レンタルサーバーなどでCGIを使用するとき、CGIの設置場所が指定されているケースがあります。
公開用の.htmlファイルと同じ場所(ディレクトリ)では作動せず、cgi-binフォルダ内に設置しなければならないなど、さまざまなパターンがあります。
使えるネットというレンタルサーバーがありますが、
そこもhtmlファイルと同じディレクトリでは、CGIが動きません。
自分の持っているサーバーでCGIを設置してみたのですが、ファイルに書かれたプログラムの文字がそのままズラズラと表示されてしまいました。
まったく作動しません。
色々試してみた結果「.htaccess」が原因だった。
以下の内容を記した.htaccessファイルをサーバー内に設置することで、そのディレクトリを含む下の階層でCGIが動くようになります。
Options +ExecCGI AddHandler cgi-script .cgi AddHandler cgi-script .pl
注意:文字列の最後に改行を入れて、4行目は空白行になるようにしてください。
簡単に解説しておきます。
そもそも、CGIファイルをアップロードしても動かないということは、
サーバーがCGIファイルを「プログラム」として認識していない、ということです。
単なるファイルだと認識してしまうので、CGIに書かれたプログラムの文字がそのまま表示されてしまうわけです。
そこで、サーバーに対して「CGIとして認識しろ」という意味で1行目を記述します。
Options +ExecCGI
さらに、「拡張子.cgiと.plのファイルをCGIとして認識しろ」という意味で2行目と3行目を記述します。
AddHandler cgi-script .cgi AddHandler cgi-script .pl
注意が必要なのは1行目です。
「ExecCGI」ではなく「+ExecCGI」というように「+」が含まれています。
単に「ExecCGI」としてしまうと、
他の機能は働かずにCGIのみが動くようになります。
他の機能に加えてCGIも動くようにしたいので、忘れずに「+」を記述します。
このように記述する事により解決しました。
私はこのように解決しましたが、色々な要因からエラーも出ると思います。
その時はまた新たに書こうと思います。
メモ書きていどでした。
では