移転しました。

rubyのCGIが動かない

Apache2.0.55をWindowXPに入れてActiveScriptRuby1.8.4.2をCGIとして使おうと思ったら動かない。

Premature end of script headers

とかエラーが出てる。ヘッダ(#!の部分)がおかしいとき以外にも出るエラーのようだけど、とりあえずはそのままヘッダ間違ってるのかと疑って

#! C:\ruby\bin\ruby

と書いていたのを

#! C:/ruby/bin/ruby

にしたり

#! /ruby/bin/ruby

にしたりしたけど駄目。Windows環境なので改行コードはCRLFで良い筈だけど、誤認されることもあるようなので、CRLF・LFの両方試したけれど駄目。

#! C:\ruby\bin\ruby --

これで直るとの情報もあったけど駄目。面倒だったのでcgi-binディレクトリに配置してたけれど、それが駄目?とか思って

<Directory "C:/foo">
Options +ExecCGI
</Directory>
AddHandler cgi-script .cgi

な設定を別ディレクトリでやってみても駄目。ヘッダを「ruby.exe」とフルネームにしても駄目。Apacheの設定が悪いのか、rubyが悪いのか判らなかったので、

#! C:\perl\bin\perl

で試すとこれも同じく動かない。httpd.confは間違えてないと思うけど、Perlが動かないとなるとかなり怪しい。残る可能性はパーミッションかな。でもWindowsGUIパーミッションを設定するのは限界があるので、パーミッション変更ツールでも作るか。ってWindowsにはchmodな発想はないか。読み取り専用とかはあるけど。