ロリポップ!でCGIが動きません

キーオさん (2012-10-06 21:24:36) http://www.ipcom.jp/mailform/check.cgi

WordPressを導入してHPを運用してます。
この度HTML5でのサイトリニューアルをしているので、こちらのCGIを使ってsendmailの設定をしたいと思っているのですが、上手く動きません。

[使用環境]
FTPソフト FileZilla 3.5.3
OS Windows7 Professional 64bit(パッチ最新まで適用済)
主なブラウザ Google Chrome バージョン 22.0.1229.79 m

[実施した動き]
・こちらのサイトから該当ファイルをダウンロード
・Jcode関連サイトから該当ファイルをダウンロード
・上記2ファイルをデスクトップにLhaplusで解凍
・Jcode関連ファイルをmailformフォルダの中に移動
・mailformフォルダとexample.htmlをWEBサーバーにFTPソフトでアップロード
・パーミッションをこちらのサイトの指定で設定(ロリポップ!推奨ではない)
・mailform/check.cgi にブラウザから直リンクアクセス
・500 error Internal Server Error でCGIが動かない旨サーバーから注意を受ける

チェックすら動かないということはロリポップ!側の問題でしょうか。
ダウンロードしたファイルはすべて無編集なのでエンコードの問題はないはずです。
またPerlやsendmailのアドレスはロリポップ!の指定とCGIの指定が一致してます。

次に何をすれば動くのでしょうか?

Re:ロリポップ!でCGIが動きません

和田 (2012-10-08 08:02:24) www.synck.com

パーミッションはロリポップ推奨のパーミッションを使用してください。
また、ファイルのみならずフォルダのパーミッションの指定もお忘れなく。

Re: Re:ロリポップ!でCGIが動きません

キーオさん (2012-10-09 11:33:53) http://www.ipcom.jp/mailform/check.cgi

ロリポップ!指定のパーミッションだと、
Perlを動作させるフォルダは「705」、CGIファイルを「700」、データファイルを「600」とありますので、
mailform(705)
├Jcode(705)
│ ├Unicode(705)
│ │ └(フォルダ内ファイル全て「600」)
│ └ファイル全て「600」
├postcodes(705)
│ ├cgiファイル全て(705)
│ └postcod.js(600)
├check.cgi(700)
├send.cgi(700)
├count.dat(600)
├mailform.js(600)
├jcode.pl(600)
├jcode.pm(600)
└mailform.js(600)
としたのですが間違いがありますか?
上記設定でもcheck.cgi →500 error で動きません。

Re: Re: Re:ロリポップ!でCGIが動きません

キーオさん (2012-10-10 12:37:20) http://www.ipcom.jp/mailform/check.cgi

CGIが無事に動きました。問題はパーミッションではありませんでした。

原因
CGIの記述で、改行コードが「CR」になっていた。
(CRはWindows系サーバで使用する改行コード。ロリポップ!はLinux系サーバ)

解決方法
TeraPadでCGIファイルを開き、「ファイル」→「文字/改行コード指定保存」を実行して、改行コードを「LF」で指定して上書き保存した。

ちなみにパーミッションはロリポップ!指定でもこちらのサイト指定でも動きました。
エディタの環境設定で改行コードの指定を明示的に設定する必要がありますね。
いろいろとお手数をお掛けしました、ありがとうございました。