はじめての自宅サーバ構築 - Fedora/CentOS -
Last Update 2018/05/30
[ 更新履歴 ] [ サイト マップ ] [ 質問掲示板 ] [ 雑談掲示板 ] [ リンク ]
トップ >> 質問掲示板

 このスレッドはクローズされています。記事の閲覧のみとなります。

 Perlのスクリプトでパス指定について
日時: 2005/02/25 13:24
名前: クロエ   <nazca@lemon.odn.ne.jp>

環境:FC3、Apache2系、Perl5

クロエですこんにちは、お久しぶりです

 Perlスクリプトでは行頭に「#!/usr/bin/perl」などと書きますよね、で
すが私の環境では「#!/usr/bin/perl -」としてハイフンを入れなければ実
行できません(500InternalServerError)となってしまいます。
 おそらくは権限が無くパスが通らないと言うことなのでしょうが、何故ハイ
フンを付加しなければならないのでしょうか?

 # 推測ですが、-でsu権限にしなければパスが通らないと言うことなのでし
  ょうか...

 # OSをインストールするときに、オプションとして一緒くたにしてApache
  関係[HTTPD]もインストールしました、ですのでPerlはroot権限になって
  います。

 もしこれを常用のパス(#!/usr/bin/perl)にして実行させることが出来る
ようにするには、どのような設定が必要なのでしょうか。
 ちなみに「which perl」の応答は「#!/usr/local/bin/perl」でした。
 ハイフンに関する資料が少なく困り果てて投稿しました<定型文ですね何度もスミマセン)

 >>> 管理人さんへ
  QRコード、ドコモみれましたよ。
  対応していただけたのですね嬉しいですありがとうございます(=^ー^=)
  ヽ( ̄◇ ̄ヽ)<今度は携帯から投稿してみようかな)
メンテ

Page:  [1]

■ コンテンツ関連情報

 Re: Perlのスクリプトでパス指定について ( No.1 )
日時: 2005/02/25 17:42
名前: stratix

クロエさん、こんにちわ。

>何故ハイフンを付加しなければならないのでしょうか?

これはもしかすると、改行コードが関係しているのかもしれないですね。
使用しているCGIはShift-JISで改行コードがCR+LFではないですか?
Unix系OSの改行コードはLFなので、CGIも改行コードLFで記述されている
ものとして実行されます。ところが、もしCGIが改行コードCR+LFで書かれて
いたとすると、
#!/usr/bin/perl[CR][LF]
となり、改行コードLFの前に不要なCRが入っていることになり、これが
原因でperlの起動に失敗しているのではないでしょうか。
ハイフンを入れることによって、
#!/usr/bin/perl -[CR][LF]
となり、perlによって無効なオプションとして無視される形になるか、
起動引数として標準入力ストリームを指定した形になるか、どちらかは
わかりませんがうまく動くのでしょう。

FTPで転送している場合はASCIIモードで転送すれば、改行コードが自動的に
変換されるので、試してみて下さい。
メンテ
 Re: Perlのスクリプトでパス指定について ( No.2 )
日時: 2005/02/25 20:18
名前: PINE

スクリプトがaaa.cgiの場合
cat -v aaa.cgi
として行末に"^M"が付いていたらstratixさんが仰るように改行コードがマズイです。
vsFTPDってディフォルトではアスキーモード不可になってまして
いくらFFFTPとかでアスキーモードで転送しても改行コードが変換されません。
実は私もこれではまりました(汗)
メンテ
 Re: Perlのスクリプトでパス指定について ( No.3 )
日時: 2005/02/26 00:17
名前: stratix

PINEさん、フォローありがとうございます。

>vsFTPDってディフォルトではアスキーモード不可になってまして
>いくらFFFTPとかでアスキーモードで転送しても改行コードが変換されません。


あ、そうなんですか。それは知りませんでした(・・;)
私は昔から使い慣れてるProFTPDにすぐ入替えてしまうので、vsFTPDについては
あまり知らないんですよ…。デフォルトでASCIIモード転送不可なんですね。
1つ勉強になりました。

クロエさんの問題の原因が、改行コードとまだ決まったわけではないですが
この問題はFAQとして、こちらのサイトにも追加されてはいかがでしょう?>管理人様
メンテ
 Re: Perlのスクリプトでパス指定について ( No.4 )
日時: 2005/02/26 17:34
名前: 管理者

クロエ様、stratix様、PINE様、こんにちは。

以前に別件で、メールでですが、Perlパスの後に"-"を付けて実行する方がいました。
その時は特に気にしていませんでしたが、CR+LFの問題かも知れないのですね・・・

私の方でも検証して確定した場合にはFAQとして載せさせていただきます。
メンテ
 Re: Perlのスクリプトでパス指定について ( No.5 )
日時: 2005/02/28 09:34
名前: クロエ   <nazca@lemon.odn.ne.jp>

おはようございますヽ(∇⌒ヽ)(ノ⌒∇)ノ

 昨晩は遅かったのであいさつできなかったのですが、土日に湯西川の方へ
遠出してまして報告遅れました。
 Perlの件解決致しましたよヽ( ̄◇ ̄ヽ)

 stratixさんの仰るとおり改行コードの問題でした、エディタはサクラエデ
ィタ(クライアントはWin)を使っているのですが、一度望んでいない文字
コードで読み込んだ後に再読込(文字コード変換+改行コード変換)をかけて
保存すると前回の改行コードに戻ってしまいました。<多分バグ)(−ω−;)つ[ver1.3]
 今は兼ねてクライアントでは改行コードを食べさせてから編集することにし
て、特にDLする必要がないときはviを使っていこうと思いました。

 # viクセはあるけど使いやすいですね

 PINEさん、初期設定ではそうなんですよね_| ̄|○|||
  >実は私もこれではまりました(汗)
 私も思いっきりはまりまくってますってヴァー(//^///)

 それでは
 また、何かと質問するかと思いますが宜しくお願い致しますね(=^ー^=)
メンテ

Page:  [1]

■ その他

ページ先頭へ

Copyright(©)2004-2018 First home server construction. All Right Reserved.