WindowsにてcgiスクリプトにPerlを使うには?

[上に] [前に] [次に]
きんききっず [E-Mail] 2000/02/22(火) 19:02:28
初めて質問します。
只今HPを作成中です。
Windows版の話しです。
cgiスクリプトとしてPerlを使おうと思うのですが、htmlファイル
からアンカーで.plというファイル名でリンクさせてブラウザ表示
させようとしてるのですが、どうしても標準出力としてブラウザに
は出力されず、コマンドプロンプトが開き実行されてしまいます。
ブラウザ出力にさせるにはどうしたらよいのでしょうか?
御手数ですが、教えて下さい。よろしくお願いします。
OS:Windows NT
ブラウザ:Netscape

ジェリー [HomePage] 2000/02/22(火) 19:48:02
http://www.nona.dti.ne.jp/~master/windows_2000/web.htm
↑をご覧いただければ思いますが。

ちなみに、CGIの方の一番上のPelパスは
#! c:\perl\bin\pel.exe

等としますが、趣旨と違っていたらすみません。

きんきんきっす 2000/02/22(火) 19:50:46
HTTPD入れてますか?

http://www.tohoho-web.com/wwwbeg7.htm
の (1)自分でサーバーを用意する場合

ジェリー 2000/02/22(火) 20:46:41
An httpdの話ですか?
そうだとしたらその作者に聞いてください。

webサーバなどをするのですか?

基本的には"#!〜"をperl.exeのパスにすれば使えますが。

マラッカ 2000/02/22(火) 21:18:13
> An httpdの話ですか?
> そうだとしたらその作者に聞いてください。
あなたが言える立場ではない。

まあそれは置いといて
使用しているサーバー名はなんですか?
CGIファイルをサーバーを通して実行しようとしていますか?

ジェリー 2000/02/22(火) 21:45:12
> あなたが言える立場ではない。

ここはホームページに関する質問ラウンジですよ。
自宅でCGIが実行できるようにする質問ラウンジではないです。
ですので、そのプログラムの作者に聞いてください。

逆にいいますが、
> あなたが言える立場ではない。
をあなたが言える立場ではないんじゃないですか?(^^;

マラッカ 2000/02/22(火) 23:01:04
> ここはホームページに関する質問ラウンジですよ。
> 自宅でCGIが実行できるようにする質問ラウンジではないです。
> ですので、そのプログラムの作者に聞いてください。
あきれた。
誰がいつどこで自宅でなんて言ったのですか?
会社のHPを作成しているとか考えられないのですか?

それに仮に自宅であっても常時接続でそこから世界に情報発信するかもしれませんよ?
# サーバーがApacheだったらいいのですか?

> > あなたが言える立場ではない。
> をあなたが言える立場ではないんじゃないですか?(^^;
そのとおりです。
しかしあなたの発言を見ているととても無駄が多いものばかりなんで書きました。

ジェリ- 2000/02/22(火) 23:15:58
>ここはホームページに関する質問ラウンジですよ。
残念でした。ここは「ホームページ作成に関する質問」のラウンジです。
http://www.wakusei.ne.jp/twn/wwwlng.htm

ジェリーさんは矛盾が多いので、発言を控えたら?

aqua-J 2000/02/23(水) 00:46:22
>きんききっずさんへ

きんきんきっすさんが言われていますが、webサーバ用の
ソフトウェアを何にしているかによって、それぞれ、設定が
違います。

IIS? An httpd? Apache for win?...などありますが。

とほほ 2000/02/23(水) 01:12:07
お願いですから、喧嘩を始めないでください。

> あなたが言える立場ではない。
このような発言は、管理者(私)以外の人はしないでください。
どうしても注意したければ、私(とほほ)宛てにメールをください。
私から注意します。

> 自宅でCGIが実行できるようにする質問ラウンジではないです。
これは嘘です。ホームページ作成に強く関連しているのでOKです。

きんききっず [E-Mail] 2000/02/23(水) 08:07:26
色々なご意見ありがとうございます。
まず、ジェリーさんのいうような#!の記法はUNIXのみとなってる
ようだし、それにコマンドプロンプトで開こうとしてるので、Perl
の実行はしていると考えています。
次にHTTPDについてですが、自分が基本的な事がわかっていないの
でしょうか?WWWサーバにインストールする前にクライアント側でう
まくいくかの試験をしようとしているところなので、HTTPDの設定
はしていません。ちなみにWWWサーバにはIISがインストールされ
ています。そちらにおいて試験はやってみた方がいいのでしょうか?こ
れは私の勘なんですが、それともまた違うような気がします。他にもし
意見があれば教えて下さい。ないようでしたら、サーバにおいて、また
やってみます(サーバにはPerlをインストールしてないので、まず
クライアントで実験してからと思ったんで)。

aqua-J 2000/02/23(水) 08:42:09
IISの場合、デフォルト時、CGI実行の拡張子は、***.cgiでないと
だめだった記憶が。。。

設定により、***.plでも動きますが、今は、調べないと私にはわかりません。
誰か、すぐわかる人います?

きんきんきっす 2000/02/23(水) 09:55:20
きんききっず さんへ

環境が良く解らないのですが、
テスト環境には HTTPDは入っているのでしょうか?
(設定だけしていないのか?インストールしていないのか?)
基本的に テスト環境と本番環境は極力同一にするべきだと思います。
(そうした方がトラブルが少ない)

HTTPDなどの設定が正しいとして、URLはどのように指定していますか?
http://192.168.10.103/test.pl
http://hogehoge.com/test.pl
3 file:///c:/www/test.pl
1や2の場合はHTTPD経由になりますが3の場合はHTTPDを経由しないで
ブラウザが直接ファイルを取得します、その場合ファイルの拡張子に応じた
アプリケーションで起動されます。
(つまり.pl ファイルがコマンドプロンプトで実行される)

きんききっず [E-Mail] 2000/02/23(水) 10:05:30
きんきんきっすさんへ
そういうことだったんですね。
やっぱりHTTPDを設定しておかないと、.plファイルがコマンド
プロンプトで実行されるから、標準出力もコマンドプロンプトになって
しまうんですね。
ありがとうございました。
ちょっとやってみて、うまくいったら解決としたいと思います。

hiro-kim 2000/02/23(水) 10:54:08
サーバコンピュータ(ハード)とサーバプログラム(ソフト)を明確に区別していないので,話が分かりづらいのだと思います。

サーバ用途のハードであろうと,クライアント用途のハードであろうと,Webサーバプログラム(ソフト)をインストールすればWebサーバとして使えます。
クライアントパソコン(ハード)だけでCGIプログラムの動作確認をしたいのならば,クライアントパソコン(ハード)にWebサーバプログラム(ソフト)をインストールして,クライアントパソコン(ハード)自身が,WebサーバでもありWebクライアントでもあるという環境をつくる必要があります。

サーバコンピュータ(ハード):
  OS:Windows NT 4.0 Server
  Webサーバプログラム(ソフト):Microsoft IIS

クライアントコンピュータ(ハード):
  OS:Windows NT 4.0 Workstation
  Perl実行環境インストール済

これまでの話の流れから私が推測したのは,とりあえずこんなところでしょうか。
これで合っているのなら,あとはクライアント(ハード)に,
AN httpdなり,Microsoft PWS (Win95/98/NT Workstation用)なりという,
具体的なWebサーバプログラム製品をインストールすることになるでしょう。

hiro-kim 2000/02/23(水) 10:57:04
>IISの場合、デフォルト時、CGI実行の拡張子は、***.cgiでないと
>だめだった記憶が。。。
>設定により、***.plでも動きますが、今は、調べないと私にはわかりません。
>誰か、すぐわかる人います?

defaultで設定されるのが.plで,手動設定が必要となるのが.cgiです。

きんきんきっす 2000/02/23(水) 11:07:49
ゴメンナサイ いい忘れてました、

私は plファイルをHTTPで実行する方法(及び実績)を知りません、
一般的にPerlのCGIファイルは拡張子をcgiにするようですので
拡張子をcgiに変更することを 推奨します。
(cgiならディフォルトで設定されているはず)

cgiファイルだと直接はコマンドで実行できませんが、
DOS窓で c:>perl test.cgi として実行するか
cgi拡張子をPerlに関連付けすると簡単に実行できます。

きんききっず [E-Mail] 2000/02/23(水) 11:30:28
ごめんなさい(>_<)。うまくいかにゃい(?_?)
事象が変わりました。
HTTPDを設定したら、今度はブラウザにスクリプトそのものが表示
するようになり、実行してくれません。
.plでも.cgiにアプリの関連づけしても同様です。
#!も試しにつけてみたんですが、予想どおり結果は一緒です。
.plをブラウザで実行させるにはどうしたらよいのでしょう?
当然コマンドプロンプトで実行させると正常に実行されます。

Syn [E-Mail] 2000/02/23(水) 11:34:49
IIS をお使いなのですよね?
ディレクトリの「スクリプトの実行」属性にチェックはついていますか?

きんききっず [E-Mail] 2000/02/23(水) 11:56:46
ごめんなさい(>_<)。うまくいかにゃい(?_?)
事象が変わりました。
HTTPDを設定したら、今度はブラウザにスクリプトそのものが表示
するようになり、実行してくれません。
.plでも.cgiにアプリの関連づけしても同様です。
#!も試しにつけてみたんですが、予想どおり結果は一緒です。
.plをブラウザで実行させるにはどうしたらよいのでしょう?
当然コマンドプロンプトで実行させると正常に実行されます。

きんききっず [E-Mail] 2000/02/23(水) 12:01:26
あれっ?発言がダブってしまった。
上の11:56の意見は無視して下さい。
ちなみに現在はNTクライアントをWWWサーバとしているので、
WWWサーバプログラムとしてはApacheを使用しています。

Syn [E-Mail] 2000/02/23(水) 13:29:15
え゛、
 ・サーバ環境: NT Server + IIS 、 Perl は未インストール
 ・テスト環境: NT Workstation + Apache + Perl
ってことですか?
それではテストにならないと思いますが…
同じ環境を用意したほうがわかりやすいと思いますよ。

ちなみに Apache で CGI を実行するには .htaccess に
AddType application/x-httpd-cgi .cgi
を追加、でイイんじゃないでしょうか。 NT だと違うのかな…

きんききっず [E-Mail] 2000/02/23(水) 16:32:14
Synさんへ
あなたのおっしゃるとおりかもしれません。
思いきって、NTサーバにPerlをインストールしました。
そしたらNTサーバ上ではうまく行きました。
ご迷惑をおかけしました。
ただ、NTクライアント側ではうまくいかないのは何故でしょう?
.htaccessってファイルはないんですが...。
なければ作らなければいけないんですかね?
また、作った時にそのファイルはどこのディレクトリィに置けばいい
んですか?

Syn [E-Mail] 2000/02/23(水) 19:00:16
うう、もうしわけないのですが、わたし Windows の Apache は
まったく触ったことがないのです (UNIX のもほとんどないけど) 。
解説のあるページがありましたので、そちらをご覧ください。
http://www.morito.mgmt.waseda.ac.jp/~tom/apache/

hiro-kim 2000/02/23(水) 19:56:07
>.htaccessってファイルはないんですが...。
>なければ作らなければいけないんですかね?
>作った時にそのファイルはどこのディレクトリィに置けばいいんですか?

Apacheの基礎に関する解説は,検索エンジンでキーワード検索しさえすれば,
Web上でたくさん見つかると思いますけれど。

>同じ環境を用意したほうがわかりやすいと思いますよ。

諸手をあげて賛成。
NT Server + IIS での動作方法は理解したのだから,
Apacheはとりあえずアンインストールして,
NT Workstation + PWS にした方がいいんじゃないでしょうか。

NT+PWSでアクセスカウンタを動かすには?
../199907/99070142.htm
Perlを使える環境にするには?
../199909/99090344.htm
Personal Web Serverとは?
../200001/00010089.htm

きんききっず [E-Mail] 2000/03/09(木) 15:00:17
[[解決]]
あっ、忘れてた。
結局アパッチではうまくいきませんでしたが、IISではうまくいって
るので、とりあえず、終了とします。
お世話になりました。
ご意見いただいた方、本当にありがとうございました。

[上に] [前に] [次に]