過去の投稿日別表示

[ リスト | 詳細 ]

全1ページ

[1]

perlのなぞ

会社のウェブサイトをいじくってたらCGIが動かなくなってしまった。

どうもWindowsマシンからFTPでファイルを転送しているときに、誤ってCGIスクリプトを上書きしたのが
いけなかったようで、再度アスキーモードでPerlで書いたスクリプトファイルを転送した。

ところが、何度やっても動いている様子がない。

Apacheのエラーログを見てみると

Premature end of script headers

というエラーがダラダラと。。。

よくわからなかったのでネットで調べてみると、はっきりとした原因のつかめないエラーらしい。

たしかに、さっきまでちゃんと動いていたのに、ファイルを転送したとたんにエラーになるなんて
おかしいとは感じてた。

だから、転送し直したファイルのパーミッションやらを触っても一向に動く気配がなかった。

いちおう対処法は書いてたのでその方法を試してみた。

その方法というのが、
冒頭の#!/usr/bin/perl のすぐ後に"-"ハイフンを付けるだけ

らしく、ホンマかいな??と疑いつつも、あまり期待せずにやってみたら、


なんとっ!  あっさり動いたではあ〜りませんか(/||| ̄▽)/!!!


うっそ〜〜〜!!!


とりあえず直ったけどいまひとつ釈然としないので、もう一度元に戻して他の方法を探ってみた。

で、いろいろと調べてるときにふと思いついたのだが、FTPの際にWindowsの改行コードCR/LFがうまく処理
されずにそのままになってるのでは?

ってことで、早速

cat xxx.cgi | sed -e s/^M//g > yyy.cgi (^Mの入力は ctrl-V → ctrl-Mをタイプ)

すると中身を表示すると見た目は同じでも、wcで比較すると行数分ファイルサイズが減っていた。
ってことはやっぱり改行コードがCR/LFのままだったようだ。

このファイルにパーミッションを正しく設定してブラウザで確認すると、ちゃんとCGIが作動した。

ハイフンひとつで直るのは未だに釈然としないけど、perlのソースなんて見る気しないので
だれかがいずれ直してくれることを祈りつつ


logout\n

全1ページ

[1]


よしもとブログランキング

もっと見る

[PR]お得情報

数量限定!イオンおまとめ企画
「無料お試しクーポン」か
「値引きクーポン」が必ず当たる!
CMで話題のふるさと納税サイトさとふる
毎日お礼品ランキング更新中!
2019年のふるさと納税は≪12/31まで≫

その他のキャンペーン


プライバシー -  利用規約 -  メディアステートメント -  ガイドライン -  順守事項 -  ご意見・ご要望 -  ヘルプ・お問い合わせ

Copyright (C) 2019 Yahoo Japan Corporation. All Rights Reserved.

みんなの更新記事