投稿日:2004年03月13日 作成鷹の巣

No.15170 Windows版Apacheでmod_perlを使いたい。



Windows版Apacheでmod_perlを使いたい。

No.15170 投稿時間:2004年03月13日(Sat) 19:20 投稿者名:CGI高速化計画 URL:

Windows版Apacheでmod_perlを使うにはWindows版mod_perlをダウンロードしてインストールする必要があります。

http://www.perl.com/CPAN-local/authors/Jeffrey_Baker/ からmod_perl-1.16-bin-xxxxxxx.zipをダウンロードし、ZIPアーカイブを適当な場所で展開します。perl\lib\ツリーをPerlの最上位ディレクトリ(C:\Perlなど)に移動します。Apache\Module\ApacheModulePerl.dllをApacheのmoduleディレクトリに移動します。さらにhttpd.confに

LoadModule perl_module modules/ApacheModulePerl

と追加します。変更を保存してApacheを再起動するとmod_perlが有効になります。

という記事を、ここでみつけました。
http://www5.plala.or.jp/vaio0630/apache/apache_case.htm#A2

文章中にある、http://www.perl.com/CPAN-local/authors/Jeffrey_Baker/がリンク切れで、ファイルがDLできなくて困っています。別のところでDLできることをご存知の方おられましたら、教えてください。
よろしくお願いします。


参考URL。

No.15171 投稿時間:2004年03月13日(Sat) 19:56 投稿者名:stranger URL:

> Windows版Apacheでmod_perlを使うにはWindows版mod_perlをダウンロードしてインストールする必要があります。
参考サイト 入れ方はわかりません
http://perl.apache.org/download/binaries.html


XP+Apache2+mod_perl1.99で挫折ぎみです・・・

No.15214 投稿時間:2004年03月16日(Tue) 12:03 投稿者名:CGI高速化計画 URL:

回答ありがとうございます。
あれから、いろいろと検索しまして、こんな情報をみつけました。

mod_perl1.99はApache2.X用のモジュールでCGIの処理速度を上げることが出来ます(メモリーの消費は増えますが...)。
■動作環境 OS:Windows2000(sp3)、WebServer:Apache2.045、Perl:Activeperl5.8(推奨)、インターネットにアクセス可
□モジュールのインストール
mpinstallをmpinstall.plとして保存してルートで実行しました。すると
自動的にモジュールのインストールが始まりました。途中でmod_perl.soの保存先を確認してきますのでパスを指定しました。
最後に、httpd.confに以下のものを加えるように指示がでました。
LoadFile "c:/usr/local/bin/perl58.dll"
Loadmodule perl_module modules/mod_perl.so
□httpd.confの変更
mod_perl2.0が起動するフォルダをhttp:XXXXXXX/cgi-bin/にするためにhttpd.confを以下のように変更しました。
LoadModule perl_module modules/mod_perl.so追加(LoadModuleの位置)
LoadFile "c:/usr/local/bin/perl58.dll"追加(LoadModuleの位置)
ScriptAlias /cgi-bin/ "C:/Apache2/cgi-bin/"を#ScriptAlias /cgi-bin/ "C:/Apache2/cgi-bin/"に変更
Directory("C:/Apache2/cgi-bin")の下に以下を追加
Alias /cgi-bin/ "C:/Apache2/cgi-bin/"
<Location /cgi-bin>
SetHandler perl-script
PerlResponseHandler ModPerl::Registry
Options +ExecCGI
PerlOptions +ParseHeaders
</Location>
これでフォルダ(cgi-bin)直下でmod_perl2.0を使用できるようになりました。
(出展: http://perl.apache.org/docs/2.0/os/win32/install.html)

ただ、OSをXP Apache2.048 ActivePerl5.8で同じようにすると、Apacheは起動できるのですが、スクリプトが動作しないんです・・・。
テスト用のスクリプトです。

cgi-binフォルダまでのURLを打ち込むと、「Forbidden」とでるのならまだわかるのですが、「Internal Server Error」がでます。
Apacheのエラーログには、
「Can't locate ModPerl/Registry.pm in @INC (@INC contains: C:/usr/local/lib C:/usr/local/site/lib . C:/Apache2/ C:/Apache2/lib/perl) at (eval 5) line 3.」

とでています。


Windows XP+Apache2+mod_perl1.99の実装になんとか成功しました。

No.15266 投稿時間:2004年03月22日(Mon) 00:15 投稿者名:CGI高速化計画 URL:

なんとか、自力でMOD_PERLの組み込みに成功しました。

上記の方法あるように、mpinstall.plを実行します。
ActivePerlを/Perl/bin/Perlにインストールしていた場合、mpinstall.pl実行後、/perl/site/lib/Apache2のフォルダにあるファイルをコピーして、/perl/lib/フォルダに上書きします。
これをすることで、「Can't locate ModPerl/Registry.pm in @INC (@INC contains: C:/usr/local/lib C:/usr/local/site/lib . C:/Apache2/ C:/Apache2/lib/perl) at (eval 5) line 3.」
のエラーは消えます。

あと、mod_perl1系は、環境変数にCGI-Perl/1.1と表示されますが、mod_perl2系にはそう表示がでないことがわかりました。
print "Hello $ENV{'MOD_PERL'}";の分を実行すれば、mod_perl1.99の表示が出ます。

httpd.confは、上記の設定で問題なく動作します。

私と同じように、XP+MOD_PERL2.0を実装するかたへ、何かの参考になればいいと思います。
ベンチマークスクリプトで、ためしましたがやはり速度差は歴然とします。

ModPerl::Registryがやはり早い。
ModPerl::PerlRunもなかなか早いです。


mpinstall.plのファイル

No.15267 投稿時間:2004年03月22日(Mon) 00:16 投稿者名:CGI高速化計画 URL:

ここで入手できます。(^^;

http://www.akusaray.net/col002.html


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