Active Perl を Microsoft-IIS/5.0 on Windows 2000 Server SP4 の環境にインストールして使用しています。以前は、手動で導入した Active Perl を使用していたのですが、先月 5.8.8 をダウンロードしてインストールしました。
うまく動いたと思ったのですが、cgi が実行され出力されたページよく見てみると、出力内容にかならず 「Content-type: text/html」 などの文字が先頭に含まれてしまいます(たとえば、ウェブページの左上など)。困った事に、cgi によって合成出力される GIF 画像のバイナリデータにもこの文字列が含まれてしまうため、GIF 画像として認識されずに表示できなくなってしまいました。
ここ1ヶ月ほど調べたりして設定を見直してみたのですが、どうやっても直す方法がわかりませんでした。以前の古い Perl (バージョンは失念してしまいました…) の時はこのような事はなかったです。ただし、新しいアプリケーションが古い Active Perl では動かなかったので、ロールバックする事はできません。
cgi に対する 「アプリケーションの構成」 の 「アプリケーションのマッピング」 は 「~perlのパス\perlis.dll」が記載されていて、動詞は 「GET,HEAD,POST」が設定されています。その下のチェックボックス二つにもチェックは入っています。
どなたかご存知でしたら、お力をお貸しいただければと思います。
A 回答 (2件)
- 最新から表示
- 回答順に表示
No.2
- 回答日時:
試しにアプリケーションのマッピングを
perlのパス\perlis.dll から
perlのパス\perl.exe %s %s
(perl.exe半角スペース%s半角スペース%s <=sは必ず小文字で)
に変えてから、IISを再起動したらどうなりますか?
http://www.din.or.jp/~bigstone/cgilab/cgitips/ii …
検索してみたら
perlis.dllでは動くが perl.exe %s %sでは500errorになる
と言う記事を見つけました。
ひょっとしたら、その場合はスクリプトにヘッダー出力を記述していないことが原因かもしれません
だとすると、、、
・perlis.dll=>ヘッダーは不要
・perl.exe %s %s =>ヘッダーが必要
と言うことになり、おっしゃっているような現象になることが推測されますが?
ありがとうございます。遅くなりました。海外出張で没頭していました。
試してみたところ、ご指摘のとおりエラーになってしまいます。スクリプトそのものは、単一のものではなく、違う作者さんの違うものを使用しており、また、以前は問題なく動いていた事から、スクリプトそのものにバグのようなコーディングミスがあるわけではないと思います。そのスクリプトを使ったサンプルサイトや他のサイトでは問題なく動いているようですし…。
No.1
- 回答日時:
IISの問題で無ければですが、
MIMEtypeヘッダよりも前に空行を出力しているとそうなりますけど?
ありがちな例としてはヒアドキュメントで
print << "HT_ML";
Content-type: text/html
中略
HT_ML
こんな記述をしているとContent-type: text/htmlの前に空行を出力していますので
そこでヘッダが終了とみなされ Content-type: text/htmlは本文と解釈されます
ありがとうございます。
どこで質問していいかわからず、Perl 関連ということでこちらで質問させていただいたのですが、プログラム関連の場所なので間違っていたかもしれません。
今回私の動かしているのはすべてダウンロードしてきたフリーソフトのような CGI プログラムたちです。同じ作者さんなら、記述上の問題かもしれませんが、複数の作者さんの作品で同じ現象になってしまっています。また、Perl をバージョンアップする前はこの問題はおこっていませんでした。
Perl のプログラム本体が自作ではないのと、以前は問題ないこと、また他のサイトで同じものを使っている人が、同様の現象が起きていない事から、Active Perl のインストールや IIS の設定で何かがあるのかと思い質問をさせていただいたしだいです。
何かありましたら教えていただければと思います。よろしくお願いいたします。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Perl Perlのエラーについてご教授ください。初心者です。 CGIを別サーバに移したところ、Perlのバー 5 2023/05/31 10:48
- Perl perlでリテラル値はメモリにどのように格納されているか? 1 2023/01/15 20:45
- CGI CGIで出力するhtmlの<!DOCTYPE html>等のタグは要りますか? 2 2023/02/05 21:26
- Perl Windows10においての『Perl』のプログラムについて 1 2022/05/09 16:04
- CGI perlで書いたcgiでsqliteの使い方を教えてください 2 2023/05/08 21:29
- Ameba(アメーバブログ) アメブロは、HTMLのタグの入力を許さないブログ・サイトですか? 1 2023/06/18 18:48
- ホームページ作成・プログラミング アメーバ・ブログは"HTMLタグ"を許可してないのですか? 2 2023/06/17 21:08
- JavaScript javascriptで文字挿入でtoggleみたいなのはありますか? 2 2023/02/14 21:53
- Perl perlをバージョンアップしたら、今まで正常に動いていたプログラムが、エラーになってしまった 3 2022/10/05 15:44
- Windows 10 Windows10 の設定?について (長文ですがよろしくお願いします)m(_ _)m 3 2022/05/14 12:22
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
awkスクリプトでダブルクォーテ...
-
重複するデータを抽出できる秀...
-
sprintfについて
-
DOSコマンドで、標準出力を出力...
-
Perlの部分的なHTML出力
-
Active Perl の動作異常について
-
ファイル出力の改行コードをLFに
-
ディレクトリ名を取得したい
-
VBAでCSVファイルを途中行まで...
-
window.open でのファイル指定方法
-
一行だけ読込
-
VBAでCSVファイルの特定行を書...
-
htaccessで特定のディレクトリ...
-
ファイル全てを .xlsm に変更し...
-
バッチファイルの作り方(CSV→...
-
close()で例外が投げられる理由
-
Perlで フォルダ内の全て...
-
perlを用いた特定文字列間の抽...
-
一定時間が経過したフォルダの削除
-
無料配布の郵便番号自動入力cgi...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
awkスクリプトでダブルクォーテ...
-
DOSコマンドで、標準出力を出力...
-
エクセルVBAで素数だけを出力す...
-
sprintfについて
-
教えて!perlから.exeファイル...
-
Perlでファイルの末尾から指定...
-
重複するデータを抽出できる秀...
-
ファイル出力の改行コードをLFに
-
CGIから外部コマンド実行時の標...
-
timeコマンドの結果をテキスト...
-
log2の「正確な」計算方法
-
sprintfで10進数を桁数指定で16...
-
Perl<->Oracle間での文字化けに...
-
機器のI/OをArduinoでSDに記録...
-
バッチファイルで、記号を含む...
-
テキストファイルから日本語部...
-
Perl中で teeを使っても戻り値...
-
perlでの出力先設定
-
htmlから、ファイル、もしくはC...
-
標準エラーと標準出力をファイ...
おすすめ情報