PC関連

[ リスト ]

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

.
たけサク
たけサク
男性 / 非公開
人気度
Yahoo!ブログヘルプ - ブログ人気度について

スマートフォンで見る

モバイル版Yahoo!ブログにアクセス!

スマートフォン版Yahoo!ブログにアクセス!

1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30 31

過去の記事一覧

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

もっと見る

[PR]お得情報

数量限定!イオンおまとめ企画
「無料お試しクーポン」か
「値引きクーポン」が必ず当たる!
ふるさと納税サイト≪さとふる≫
実質2000円で好きなお礼品を選べる
毎日人気ランキング更新中!

その他のキャンペーン


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

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

みんなの更新記事