No.9717 投稿時間:2003年04月20日(Sun) 21:54 投稿者名:moon URL:
いつも御世話になります。
自宅サーバーにおいて、CGIプログラムを利用する場合、よく下記の様な設定とありますが、
自宅サーバー(ANHTTPD)の中でCGIを動作させる場合はどのように記述すればよいですか?
#!/usr/local/bin/perl
(プロバイダで定められたPerlへのパスを指定します)
#!/local/ かと思ったのですが動作しませんでした。
よろしくお願いします。
No.9721 投稿時間:2003年04月21日(Mon) 11:50 投稿者名:カイナン URL:
> #!/usr/local/bin/perl
> (プロバイダで定められたPerlへのパスを指定します)
> #!/local/ かと思ったのですが動作しませんでした。
うろ覚えですが,anhttpdの場合は無視されるのでは?
apache for winの場合は
#!d:\perl\perl
などperl.exeのあるディレクトリを指定します.
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 様
わかりました。
ありがとうございます。
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 は、そのままにしておいても普通のコメント行と見なされます。
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 にはしない様にと書いてありました。
もし、よろしければ、違いを教えてください。
でも、早速、設定してみます。
ありがとうございます。
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をご使用になれば、
> うまく動作しない場合の問題点の切り分けがしやすくなります。
鷹の巣 様
いつも本当に御世話になります。
今回も大変よくわかるご説明ありがとうございます。
今後ともよろしくお願いします。
しかし、鷹の巣様のページが無ければ自サバ出来ていたかどうか・・・。
本当に感謝です。スキルアップめざし、この掲示板で答えられるようがんばります。