• ベストアンサー

Perlのモジュールをインストール後、Apacheの再起動は必要かどうか

ブラウザに出力させるPerlのプログラム(cgi)を書いています。 Perlのモジュールが足りないため、 cpanでインストールをしました。 特に、Apacheを再起動させないで、 ブラウザにメッセージが出力されました。 通常、ApacheでPerlを使う場合、足りないモジュールを インストールした後はApacheの再起動をするべきなのでしょうか? 再起動する・しないの理由が知りたいです。

  • Perl
  • 回答数3
  • ありがとう数3

質問者が選んだベストアンサー

  • ベストアンサー
  • t-okura
  • ベストアンサー率75% (253/335)
回答No.1

CGI(Common Gateway Interface)で起動されたPerlスクリプトは、 その場で「独立した」プログラムとしてスクリプトを読み込み 実行されます。Apache の再起動は不要です。 Apache から Perl を使う方法には mod_perl というものもありますが、 mod_perl を使用すると初回に実行した Perlスクリプトが Apache 本体に 組み込まれ、意図的に破棄しない限り(コンパイルされたコードが)再利用 されます。mod_perl を使用した場合は Perl のコードを変更すると Apache の再起動が必要になります。 http://ja.wikipedia.org/wiki/Perl#Web.E3.82.A2.E3.83.97.E3.83.AA.E3.82.B1.E3.83.BC.E3.82.B7.E3.83.A7.E3.83.B3.E3.81.AE.E5.AE.9F.E8.A1.8C

bunmeidou
質問者

お礼

ご回答ありがとうございます。助かりましたm(_ _)m 独立したプログラムで納得しました。 自信がもてなかったですが、自信がつきました。 本当にありがとうございました。

その他の回答 (2)

回答No.3

Apache のモジュールを追加した場合は、Apache の再起動は必要ですが、 Perl のモジュールを追加しただけでは、Apache を再起動する必要はありません。 基本的には実行毎にスクリプトはコンパイルされるので、 その度にモジュールは読み込まれます。 つまり、プロセス上の perl は処理が完了する度に終了しています。

bunmeidou
質問者

お礼

なるほどですね。ご回答ありがとうございます。 どうしても、テストをしても上司から「絶対」「100%」だな? と言われるので自信がもてずにいました。 安心して作業ができます。

  • YkazubonY
  • ベストアンサー率30% (26/86)
回答No.2

IEでは、CGIが出力した結果をキャッシュしているから、Apacheだけに影響範囲を限定するのは無意味だべ。 特にCGIをデバッグしている場合はIEでF5を押す必要が煩雑に発生するな。

bunmeidou
質問者

お礼

そうですね、ブラウザのキャッシュはやっかいになりますね。 サーバ側のプログラムを再起動をしても、クライアント側で キャッシュをしていては正しい結果がわからない時があります。 更新は必須ですね。ご回答ありがとうございます。

関連するQ&A

  • PerlモジュールのApache-Responseについて

    Active Perl 5.8でモジュールをインストールしようとしましたが、 ppm install Apache-Response CPANサイトで検索しても Apache::Responseというズバリのものはありませんでした。 どこで手に入れることができるのでしょうか? できれば簡単にインストールしたいです。

    • ベストアンサー
    • Perl
  • Perlのモジュールが極端に少ない

    OS(CentOS 6.2 / 64bit)にデフォルトでインストールされているPerl(version 5.10.1)を使って勉強しているのですが、参考書に記載されているメジャーなモジュールがインストールされてなく、困っています。 自分でインストールする必要があるのかと思い、モジュールのインストール方法を調べたところ、CPANというモジュールを使えば簡単にモジュールがインストールできると知ったのですが、このCPANモジュールも入っていない模様。 ではまずはCPANモジュールから手動でインストールしようかと思ったところ、CPANモジュールインストール時のMakefile.PLを実行すると、ExtUtilsというモジュールが無いと怒られてしまい実行できませんでした。 このような場合、通常よく使われるようなモジュールをまとめてインストールするような方法は無いのでしょうか。 ※ちなみに、@INCでは以下のディレクトリが登録されていました。 ・/usr/local/lib64/perl5 ・/usr/local/share/perl5 ・/usr/lib64/perl5/vender_perl ・/usr/share/perl5/vender_perl ・/usr/lib64/perl5 ・/usr/share/perl5

    • ベストアンサー
    • Perl
  • Perlでモジュールをインストールしない方法

    Perlでモジュールをインストールしない方法をしりたいです。 普通はコマンドを使ったりして必要なモジュールを予めインストールしますが、インストールせずにCPANサイトからモジュールをダウンロードしてきて使用する方法はありますか? 自分の感覚だと、プログラムの最初に何かを宣言すればいいのかな、と思うのですが。

    • ベストアンサー
    • Perl
  • Perlモジュールインストール

    下記環境においてPerlモジュールインストール(perl -MCPAN -e shell) をしているのですが、ftp://ftp.perl.org/pub/CPAN/MIRRORED.BYにつながりません。>^< (FTP(C:\WINNT\system32\ftp.EXE)が問題みたいな応答が出てきます。) 助けてください。 ●環境 Windows2000+ActivePerl 5.6+Apache1.3.27 (~略~) Your ftp_proxy? Your http_proxy? Your no_proxy? You have no C:\USR\Perl\Cpan\sources\MIRRORED.BY I'm trying to fetch one CPAN: LWP::UserAgent loaded ok Fetching with LWP: ftp://ftp.perl.org/pub/CPAN/MIRRORED.BY

    • ベストアンサー
    • Perl
  • Perlモジュールインストール tarボール? 5.6 5.8 それぞれ?

    WindowsのPerl5.6とPerl5.8を入れております。 最初Perl5.6を c:\usrに入れ 次にPerl5.8を c:\usr\localに入れました。 コマンドプロンプトでperl -vとすると 5.8が動作していました。 webのローカルテスト用に 5.6, 5.8の環境を作成したいのですが ppmでモジュールをインストールする場合は、それぞれのppmを動かせば バージョンを間違えることなく、Perlモジュールがインストールされていますが、 CPANから取得したtar(圧縮されたソース)を展開して、 perl Makefile.PL nmake nmake test nmake install した場合に、最後にインストールした5.8のPerlにモジュールがインストールされるのでしょうか? ppmは問題ないと見ましたが、手動インストールの場合、 5.6, 5.8を指定してインストールすることは可能でしょうか? スマートな解決方法はありますか?(出来るだけ簡単に運用したいので)

    • ベストアンサー
    • Perl
  • cpanからモジュールをインストール後

    お世話になります。 ネットで調べcpanからモジュールをインストールしました。 # su - # perl -MCPAN -e shell 最初の起動時に質問が出てきてリターンと少しの設定後、 cpan>install XML::RSS # find `perl -e 'print "@INC"'` -name 'RSS.pm' -print ./.cpan/build/XML-RSS-1.05/lib/RSS.pm ./.cpan/build/XML-RSS-1.05/blib/lib/XML/RSS.pm の形でインストールされているのを確認しました。 で、その後、perlのCGIの方で実行すると、 Can't locate XML/RSS.pm in @INC (@INC contains: ./mylib /usr/lib/perl5/5.8.0/i386-linux-thread-multi /usr/lib/perl5/5.8.0 /usr/lib/perl5/site_perl/5.8.0/i386-linux-thread-multi /usr/lib/perl5/site_perl/5.8.0 /usr/lib/perl5/site_perl /usr/lib/perl5/vendor_perl/5.8.0/i386-linux-thread-multi /usr/lib/perl5/vendor_perl/5.8.0 /usr/lib/perl5/vendor_perl .) at rss.cgi line 10. BEGIN failed--compilation aborted at rss.cgi line 10. になってしまうんですが、次はどうすればよいのでしょうか

    • ベストアンサー
    • Perl
  • apache1.3とperlでCGI

    超初心者です。 windows XPでapache1.3 と active perl 5.1.2をインストールして、 CGIを動作させたいと考えています。 http://localhostを入力してapacheの起動画面は表示されていること を確認しました。 その後httpdconfに下記を追加しました。 AddHandler cgi-script .cgi .pl AddType application/x-httpd-cgi .cgi AddType application/x-httpd-cgi .pl <Directory "C:/Program Files/Apache Group/Apache/cgi-bin"> AllowOverride None Options ExecCGI Order allow,deny Allow from all </Directory> C:\Program Files\Apache Group\Apache\cgi-binに既存で存在する printenv.plを実行しようとするとファイルのダウンロードの画面が出てきて 実行されません。printenv.plは下記のようにperl.exeへのパスだけ変更しました。 #! C:/Perl/bin/perl ## ## printenv -- demo CGI program which just prints its environment ## print "Content-type: text/plain\n\n"; foreach $var (sort(keys(%ENV))) { $val = $ENV{$var}; $val =~ s|\n|\\n|g; $val =~ s|"|\\"|g; print "${var}=\"${val}\"\n"; } どうすればCGIが実行できるようになるのでしょうか? ご教授ください。よろしくお願い致します。

    • ベストアンサー
    • CGI
  • Perl モジュールのアンインストールの仕方

    ソースからインストールしたPerlモジュールと CPANからインストールしたPerlモジュールの アンインストール方法を探しています。 ■環境 OS:RedHat Linux ES4 Perl:5.8.8 ※perldoc perllocalにインストール履歴が残ります。 インターネットで検索してみますと、Linuxは慣習的に 一度インストールしたものは削除しないように感じます。 自分で、インストールしたファイルをrmコマンドで消していくしかないのでしょうか。

    • ベストアンサー
    • Perl
  • apacheの起動について教えてください。

    こんばんわ。よろしくお願いします。 「Perl CGI入門学習」というタイトルの本を買ったのですが、はじめにアパッチをインストールすると書いてあったので説明どおりに (1)付属ソフトで「Active perl」のインストールをしました。次に (2)「Apache」のインストール」を終了しました。 (3)そして「Httpd.conf」をメモ帳で書いてある通りに修正して上書きをしました。何回も確かめたので間違いありません。 すべて終わったのでちゃんとできているかテストしました。そのテストの内容はこう書かれています。 「次に、起動したApacheにアクセスしてみます。それにはWebブラウザを起動して、アドレスにhttp://127.0.0.1/を指定してください。次のように指示されたら、Apacheのセットアップはとりあえず成功しています。」 と書いてあったのでそのままのようにしました。 でも、なぜか何回もしても「ページを表示できません」とかしか出ません。 本当はApache専用のページが出るはずなのです。 もう一度やり直しでインストールをしたのですがやっぱりできません。メモ帳簿の修正も絶対に間違っていません。  なんでできないのでしょうか?パソコンの環境などありますか?   申し訳ありませんが詳しい方教えてください! よろしくお願いします。

    • ベストアンサー
    • Perl
  • Perlについて教えてください。

    Perlについて教えてください。 私はPerl、Linux(FreeBSD,CentOS)について初心者の為よくわからないので2点質問させてください。 ネットでPerlについて調べたところ 1. WindowsでのPerl開発 = Active Perl(ActiveState社) WindowsでのPerl開発 = OSに最初から組み込まれているもの(違っていたらすみません) との記述がありますが、ActiveState社のHPに行くとWindows,Mac,Linux,SunのActive Perl がありますがActive PerlはそれそれのOSで同じソースががつかえるのでしょうか? 2. Windows XPにActive Perlをインストールしたところ「Perl package Manager」もインストール されていたので、起動してみるとインストールされている(インストールできる)PPMが表示されますが PPM(Perl Package Modeule)=Win32用Perlモジュール CPANのPerlモジュール=Linux用のPerlモジュールと考えていたのですが 両方とも表示されています。 CPANで入手できるPerlモジュールはWindows環境下のActive Perlでもしようできるのですか? 馬鹿な質問と思うのかもしれませんが是非教えてください。

    • ベストアンサー
    • Perl

専門家に質問してみよう