投稿日時: 04/04/27 02:58:03
Q。RedHat9で自宅サーバを立ち上げようとしています。設定は一通りしたつもりですが、どうしてもPremature error of scriptエラーで動きません。
Perlのパスを/usr/local/bin/perlから/usr/bin/perlへ変更し、
httpd.confで以下の設定をしました。
#AddHandler cgi-script .cgi
↓
AddHandler cgi-script .cgi
<Directory "/var/www/cgi-bin">
Options ExecCGI
</Directory>
しかし、拾ってきたCGIが動きません。ちなみにemacsでhellow worldを書くと、これは動きました。助けてください。
A。いろんな可能性がありますが、RedHatのデフォルト設定の問題として、以下の既知の問題がありますのでお知らせします。
cgiスクリプトの改行コードの問題
サーバー上で cat -v ファイル名で見てみてください。行末に ^M がついている場合は、そこに問題があります。これはDOSーUNIX環境でアスキーモードのFTPがうまくいっていない場合に起こる問題です。通常の商用プロバイダーでは対処していますので問題が出ないと思いますが、RedHatに標準で入っているvsftpd を初期値のまま使っていると、この問題が発生します。
もしcatで確認して末尾に^Mが付いている場合は、以下のコマンドを発行して、文末の^Mを除去してください。それで動くようになります。
>perl -i.bak -npe 's/\r\n/\n/' imgboard.cgi
#imgboard.bakという名前でバックアップファイルができます
これをすべてのCGIファイルに対しておこなってください。