拡張子 .pl と .cgi はどのような違いがあるのですか?
[上に]
[前に]
[次に]
じぇい
1999/05/22(土) 04:35:17
題名そのままなのですが、、、拡張子 .pl と .cgi はなんか違うんですか?
.txt と .cgi とかが違うのはわかるんですけど、、。
ふじ
1999/05/22(土) 04:45:40
.cgiは、CGIとして起動されるファイルの拡張子で、
中身はPerlでなくても、Cでもシェルでもなんでもいいのです。実行できれば。
.plは、Perlのスクリプト一般につける拡張子です。
B-Cus
1999/05/22(土) 07:10:55
逆に言うと、perlスクリプトをCGIとして実行させたいなら、
*.pl でなく *.cgi としなければいけません。
jcode.pl は CGIとは全く関係ないので、.pl でいいわけです。
ちなみに .pl という拡張子は ただの慣例であって、ほんとは
.hoge でも .fuga でも、拡張子がなくても構いません(少くともUNIXでは)。
# 僕はperlスクリプトに拡張子は付けません。
> .plは、Perlのスクリプト一般につける拡張子です。
Prologも :-)
PTAN
[E-Mail]
1999/05/22(土) 09:08:06
> 逆に言うと、perlスクリプトをCGIとして実行させたいなら、
> *.pl でなく *.cgi としなければいけません。
正確に言うと、Webサーバ側の設定がそうなっていれば、が入ります。
要は、Webサーバの設定で「*.plはCGI」と定義すれば、*.plもCGIになります。
じぇい
1999/05/23(日) 17:30:13
>逆に言うと、perlスクリプトをCGIとして実行させたいなら、
>*.pl でなく *.cgi としなければいけません。
うう、、、どうやら僕は基本がわかっていないようです。; ;
CGIとして実行させたい、、、というのは、、どういうことでしょうか?
処理をさせたければ、、ということですか?
じぇい
1999/05/23(日) 17:38:17
あっ、、、もしかして、、CGIというのはHTMLを含んだ処理のことをいうんですかね、、?
B-Cus
1999/05/23(日) 19:02:02
#!/usr/local/bin/perl
print "Content-type: text/plain\n\n";
print "test ok\n";
という内容のファイルを作り、test.cgi と test.pl 両方で保存して、
サーバにFTPでputして、ブラウザでどういう違いがあるか見てみれば
いいでしょう。
こういうのは言葉で聞くだけでなく、自分で試してみるのが一番です。
じぇい
1999/05/23(日) 20:59:59
拡張子 .pl ではサーバーエラーになりました。
、、、いまだよくわからないのですが、、もしかして、、.plでは、こちらに情報を送ってこない、、ということでしょうか?
ただ処理を行うだけで出力をしないとか、、、?
B-Cus
1999/05/23(日) 23:40:01
デフォルトの apache だと、.pl はソースがそのまま表示されるはずです。
http://www.cs.gunma-u.ac.jp/~j5306050/cgi-bin/test.cgi
http://www.cs.gunma-u.ac.jp/~j5306050/cgi-bin/test.pl
なぜなら、サーバ側は
「特定の拡張子(.cgi)が付いているかどうか」
で、
- ファイルの内容を表示するのか (*.pl)
- ファイルを実行して、その結果を表示するのか (*.cgi)
ということを判断しているからです。
でも、そうならないということは、そのサーバでは *.pl も
CGIとみなさす、というように設定しているのかもしれません。
じぇい
1999/05/23(日) 23:46:44
あっ、、なるほど。。
拡張子.plは処理を行い、表示するのは拡張子.txtと同じで内容そのままで、拡張子.cgiは処理を行い、その結果を表示するということですね?、、かな。。。
.plはPerlによる処理は行うんですよね?
B-Cus
1999/05/23(日) 23:50:39
いえ、.pl は .txt と全く同じと思ってください。
しかしPTANさんの言われたように、これはあくまでもデフォルト設定なので、
.pl も CGIとして動かすことは不可能ではありません。
> 拡張子 .pl ではサーバーエラーになりました。
しかし .cgi は動いて .pl はサーバーエラーという挙動はちょっと
理解できません。タイプミスなどしてませんか?
じぇい
1999/05/24(月) 00:06:51
>.pl は .txt と全く同じと思ってください。
わかりました。一般には.plはなんの処理も行わないのですね。
しかし、、jcode.plはjcode.txtでは、、だめですよね、、?
.plというのはCGIスクリプトの中でなんか命令をしたらPerlで処理を行うようになるのでしょうか?(ずっととぼけたことばかりお聞きしてすいません)。今まで、感覚でスクリプトを作っていたので、なんか理屈を理解するのが大変です^^;。やっぱもっと机にかじりついて基本をマスターしないとだめですね。。
>しかし .cgi は動いて .pl はサーバーエラーという挙動はちょっと
>理解できません。タイプミスなどしてませんか?
どうやらタイプミスをしていたようです。^^;
申し訳ありません。
実行した結果はどちらも同じになりました。
どうやら僕の利用しているサーバーでは.plと.cgiはどちらもCGIとして実行するようです。
B-Cus
1999/05/24(月) 03:37:31
> 一般には.plはなんの処理も行わないのですね。
デフォルトの apache の設定では、CGIとして動作しないようになっています。
> jcode.plはjcode.txtでは、、だめですよね、、?
別に構いません。呼び出す方も
require './jcode.txt';
などと書いておけばできます。
なぜなら、
> ちなみに .pl という拡張子は ただの慣例であって、ほんとは
> .hoge でも .fuga でも、拡張子がなくても構いません(少くともUNIXでは)。
だからです。
じぇい
1999/05/24(月) 03:51:27
[[解決]]
ご親切にどうもありがとうございました。
なんか、、B-Cusさんには毎回お世話になっているような気がします。
こんな素人に付き合っていただいてありがたいです。
そのうちもっと高度でおもしろい質問ができるようにしますので…。
[上に]
[前に]
[次に]