所用で、急遽とあるCGIを設置することになって、
さかさかとPerlでスクリプトを書いてFTPでアップロード。
で、URLを指定して実行するけれどもInternal Server error連発。
最初は、スクリプトのエラーを疑ったけれども、
ローカルではPerlは動作する。
次に、パーミッションの設定を疑って、
やっぱり間違っていない。
さくらは755でも705でもどちらでも動く。
で、SSHでさくらにログインして、当該ファイルを実行してみたら、動く。
なので、Web経由でアクセスしたときに問題があるらしい。
しばらくスクリプトを書き換えたり、フォルダを移動したり、
パーミッションをいじってみたりして、
動くフォルダと動かないフォルダがあることがわかった。
それで、試しに新しいフォルダを作ってそこにファイルを入れてみたところ、
動いた。
この、動くフォルダと動かないフォルダの違いはなんだろう?と考えて、
それでやっと、
「いままで777のフォルダの下でも
動くと思っていたけれど、
実は777ではCGIは動かなくて、
705や755にしないと動かない」
ということに気付いた。
そりゃそうだよねぇ。
777だと自分自身を書き換えちゃう可能性もあるし。たぶん。
なんかいろいろセキュリティ的にアブナイのだろう。
755だとCGIが置いてあるフォルダと同じ階層にあるファイルは
書き換えることができないから、
それがデータを書き換える系のプログラムだったら一個フォルダを作って、
その中のファイルを書き換えるなりさせないと
プログラムは動作しないっつーことだ。
また、些細なミスに時間を費やしてしまった。。。