投稿日:2003年04月20日 作成鷹の巣

No.9717 AN HTTPDでCGIを動作させるには?(Perlへのパスの指定方法)



AN HTTPDでCGIを動作させるには?(Perlへのパスの指定方法)

No.9717 投稿時間:2003年04月20日(Sun) 21:54 投稿者名:moon URL:

いつも御世話になります。
自宅サーバーにおいて、CGIプログラムを利用する場合、よく下記の様な設定とありますが、
自宅サーバー(ANHTTPD)の中でCGIを動作させる場合はどのように記述すればよいですか?

#!/usr/local/bin/perl
(プロバイダで定められたPerlへのパスを指定します)
#!/local/ かと思ったのですが動作しませんでした。

よろしくお願いします。


an httpdの場合は無視されるのでは?

No.9721 投稿時間:2003年04月21日(Mon) 11:50 投稿者名:カイナン URL:

> #!/usr/local/bin/perl
> (プロバイダで定められたPerlへのパスを指定します)
> #!/local/ かと思ったのですが動作しませんでした。
うろ覚えですが,anhttpdの場合は無視されるのでは?
apache for winの場合は
#!d:\perl\perl
などperl.exeのあるディレクトリを指定します.


「Perlへのパスが無視されるのでは?」と言うことは使えないんでしょうか?

No.9725 投稿時間:2003年04月21日(Mon) 15:42 投稿者名:moon URL:

> > #!/usr/local/bin/perl
> > (プロバイダで定められたPerlへのパスを指定します)
> > #!/local/ かと思ったのですが動作しませんでした。
> うろ覚えですが,anhttpdの場合は無視されるのでは?
> apache for winの場合は
> #!d:\perl\perl
> などperl.exeのあるディレクトリを指定します.

カイナン 様
ありがとうございます。
anhttpdの場合は無視されるのでは? と言うことは使えないんでしょうか?
もしくは
apache for winの場合は
#!d:\perl\perl
などperl.exeのあるディレクトリを指定します
と同じなのでしょうか?
試してみます。
ありがとうございました。


何を書いても関係無いということです。

No.9727 投稿時間:2003年04月21日(Mon) 17:14 投稿者名:hip URL:

> anhttpdの場合は無視されるのでは? と言うことは使えないんでしょうか?
この行に何を書いても動く動かないには関係無いということです。
つまり、動かないなら原因は他にあるということです。

ということらしいです。


わかりました。

No.9731 投稿時間:2003年04月21日(Mon) 18:55 投稿者名:moon URL:

> > anhttpdの場合は無視されるのでは? と言うことは使えないんでしょうか?
> この行に何を書いても動く動かないには関係無いということです。
> つまり、動かないなら原因は他にあるということです。
>
> ということらしいです。

hip 様
わかりました。
ありがとうございます。


AN HTTPDの一般タブの拡張子の設定欄を再確認して下さい。

No.9743 投稿時間:2003年04月21日(Mon) 22:21 投稿者名:鷹の巣 URL:http://sakaguch.com/

perl.exeがD:\Perl\binというフォルダにある場合は、perl.exeの絶対パス表示は、
D:\Perl\bin\perl.exe
です。この場合、perlスクリプトの先頭行に表示する書式は、
#!D:/Perl/bin/perl.exe
と書きます。ただし、AN HTTPDでは、一般タブの拡張子の設定欄に

レ .pl,.cgi D:\Perl\bin\perl.exe レ

と書いておけば、perlスクリプトの先頭行には、何を書いても無視されます。
(無視しない設定もAN HTTPDでは可能ですが、わざわざ不便にする必要はありません。)
#!/usr/local/bin/perl
は、そのままにしておいても普通のコメント行と見なされます。


perl.exeとPerlIS.dllとはどう違うのでしょうか?

No.9748 投稿時間:2003年04月21日(Mon) 23:44 投稿者名:moon URL:

> perl.exeがD:\Perl\binというフォルダにある場合は、perl.exeの
絶対パス表示は、
> D:\Perl\bin\perl.exe
> です。この場合、perlスクリプトの先頭行に表示する書式は、
> #!D:/Perl/bin/perl.exe
> と書きます。ただし、AN HTTPDでは、一般タブの拡張子の設定欄

>
> レ .pl,.cgi D:\Perl\bin\perl.exe レ
>
> と書いておけば、perlスクリプトの先頭行には、何を書いても無
視されます。
> (無視しない設定もAN HTTPDでは可能ですが、わざわざ不便にす
る必要はありません。)
> #!/usr/local/bin/perl
> は、そのままにしておいても普通のコメント行と見なされます。

ありがとうございます。
私が、購入した フリーソフトとブロードバンドで作る自宅インナー
ネットサーバー という本の中にPerlの設定について
インストール直後の Perl から D:\Perl\\bin\PerlIS.dll に変更
するように書いてありました。
それは、鷹の巣様が 設定するようおっしゃられてる D:\Perl\bin\p
erl.exe とはどう違うのでしょうか?
sendmailの設定を使用と思ってもいるのですが、鷹の巣様の説明ペー
ジには、絶対に PerlIS.dll にはしない様にと書いてありました。
もし、よろしければ、違いを教えてください。
でも、早速、設定してみます。
ありがとうございます。


perl.exeとPerlIS.dllの違い。

No.9787 投稿時間:2003年04月23日(Wed) 12:41 投稿者名:鷹の巣 URL:http://sakaguch.com/

> 私が、購入した フリーソフトとブロードバンドで作る自宅インナー
> ネットサーバー という本の中にPerlの設定について
> インストール直後の Perl から D:\Perl\\bin\PerlIS.dll に変更するように書いてありました。
> それは、鷹の巣様が 設定するようおっしゃられてる D:\Perl\bin\perl.exe とはどう違うのでしょうか?

perl.exeとPerlIS.dllとの違いは、こちら
http://www.google.co.jp/search?sourceid=navclient&hl=ja&ie=UTF-8&oe=UTF-8&q=perl%2Eexe%E3%81%A8PerlIS%2Edll%E3%81%AE%E9%81%95%E3%81%84
をご一読願います。
windowsで言うところの拡張子が.exeというのはexecute(実行する)という意味で、
.dllというのは、Dynamic Link Library(動的結合サブルーチン集?)という意味です。

> sendmailの設定を使用と思ってもいるのですが、鷹の巣様の説明ペー
> ジには、絶対に PerlIS.dll にはしない様にと書いてありました。
> もし、よろしければ、違いを教えてください。

上記のURLにも記載されていますが、
ZDNet デベロッパー: 第1回:IIS6のインストールと各種設定 (2/3)
http://www.zdnet.co.jp/developer/dotnet/iis6/01/02.html
より引用抜粋しますと、
-------------------------引用開始----------------------------
ISAPI(Internet Server API)とは、IISに機能拡張を加えるためのAPIと理解すると分かりやすいだろう。
たとえば、PerlをWindows上で利用する場合、Perl.exeを利用することが一般的だが、
より高速な動作環境を求めて、PerlIS.dllを利用するケースもある。
-------------------------引用終了----------------------------
拡張子が.exeのファイルは、.dllと違って、COMMAND.COM(Windows95系)またはCMD.EXE(Windows NT系)の
DOS窓のshellの外部コマンドとして実行されます。
従って、速度は低下しますが、PC-UNIX上で動作するCGIとの互換性が高くなります。
実際にsendmail.cgiやsendmane.exeのようなsendmail wrapper(sendmail互換インターフェィスソフト)を
使用していると、shellのパイプ(引数のメモリ渡し等)がPerlIS.dllではうまく動作しません。
# メモリ渡し引数を一時ファイルに書き出して、読み込むようにソフトを改造すれば動作します。

以上のような理由から、perl.exeをご使用されることを推奨します。
# 私も遅くてもperl.exeを使用しています。(現在は、Intel celeron 1GHz ,Base clock 100MHz)
もし、CGIのアクセスが多くて、どうしてもPerlIS.dllをご使用になりたい場合は、
まず、perl.exeで正常に動作することを確認されてから、PerlIS.dllをご使用になれば、
うまく動作しない場合の問題点の切り分けがしやすくなります。


がんばります。

No.9791 投稿時間:2003年04月23日(Wed) 15:02 投稿者名:moon URL:

> > 私が、購入した フリーソフトとブロードバンドで作る自宅インナー
> > ネットサーバー という本の中にPerlの設定について
> > インストール直後の Perl から D:\Perl\\bin\PerlIS.dll に変更するように書いてありました。
> > それは、鷹の巣様が 設定するようおっしゃられてる D:\Perl\bin\perl.exe とはどう違うのでしょうか?
>
> perl.exeとPerlIS.dllとの違いは、こちら
> http://www.google.co.jp/search?sourceid=navclient&hl=ja&ie=UTF-8&oe=UTF-8&q=perl%2Eexe%E3%81%A8PerlIS%2Edll%E3%81%AE%E9%81%95%E3%81%84
> をご一読願います。
> windowsで言うところの拡張子が.exeというのはexecute(実行する)という意味で、
> .dllというのは、Dynamic Link Library(動的結合サブルーチン集?)という意味です。
>
> > sendmailの設定を使用と思ってもいるのですが、鷹の巣様の説明ペー
> > ジには、絶対に PerlIS.dll にはしない様にと書いてありました。
> > もし、よろしければ、違いを教えてください。
>
> 上記のURLにも記載されていますが、
> ZDNet デベロッパー: 第1回:IIS6のインストールと各種設定 (2/3)
> http://www.zdnet.co.jp/developer/dotnet/iis6/01/02.html
> より引用抜粋しますと、
> -------------------------引用開始----------------------------
> ISAPI(Internet Server API)とは、IISに機能拡張を加えるためのAPIと理解すると分かりやすいだろう。
> たとえば、PerlをWindows上で利用する場合、Perl.exeを利用することが一般的だが、
> より高速な動作環境を求めて、PerlIS.dllを利用するケースもある。
> -------------------------引用終了----------------------------
> 拡張子が.exeのファイルは、.dllと違って、COMMAND.COM(Windows95系)またはCMD.EXE(Windows NT系)の
> DOS窓のshellの外部コマンドとして実行されます。
> 従って、速度は低下しますが、PC-UNIX上で動作するCGIとの互換性が高くなります。
> 実際にsendmail.cgiやsendmane.exeのようなsendmail wrapper(sendmail互換インターフェィスソフト)を
> 使用していると、shellのパイプ(引数のメモリ渡し等)がPerlIS.dllではうまく動作しません。
> # メモリ渡し引数を一時ファイルに書き出して、読み込むようにソフトを改造すれば動作します。
>
> 以上のような理由から、perl.exeをご使用されることを推奨します。
> # 私も遅くてもperl.exeを使用しています。(現在は、Intel celeron 1GHz ,Base clock 100MHz)
> もし、CGIのアクセスが多くて、どうしてもPerlIS.dllをご使用になりたい場合は、
> まず、perl.exeで正常に動作することを確認されてから、PerlIS.dllをご使用になれば、
> うまく動作しない場合の問題点の切り分けがしやすくなります。

鷹の巣 様
いつも本当に御世話になります。
今回も大変よくわかるご説明ありがとうございます。
今後ともよろしくお願いします。
しかし、鷹の巣様のページが無ければ自サバ出来ていたかどうか・・・。
本当に感謝です。スキルアップめざし、この掲示板で答えられるようがんばります。


|目次|掲示板|過去ログ目次|▲頁先頭|