ログインしてさらにmixiを楽しもう

コメントを投稿して情報交換!
更新通知を受け取って、最新情報をゲット!

mod_perlコミュの質問があります。

  • mixiチェック
  • このエントリーをはてなブックマークに追加
はじめまして。
最近、mod_perl2 x Apache2でのお仕事を始めたのですが、
わからないことがあり困っています。
何かアドバイスがあれば教えて下さい!!!
宜しくお願いします。

[mod_perl2 x Apache2::Request に関する質問です。]

1.Can't locate auto/Apache2/Request/param.al @INC
というエラーが以下のコードでおこります。
考えられる原因を教えて下さい。
param.alはありませんでしたが、調べた結果このエラーはどうもファイルがあるないの問題ではなさそうです。

use Apache2::RequestRec ();
use Apache2::RequestIO ();
use Apache2::Request;



sub handler {

    my $r = shift;

    my $gr = $r;

    my $cgi = Apache2::Request->new($r);



my $api = $cgi->param('api');
   ↑この行

2.おそらく1に類似していますが、
Can't locate auto/Apache2/Cookie/Jar/jar.al in @INC
というエラーが以下のコードでおこります。
考えられる原因を教えて下さい。
同じくjar.alはありませんでしたが、調べた結果このエラーもどうもファイルがあるないの問題ではなさそうです。

use Apache2::Cookie ();

sub handler {

    my $r = shift;

    my $gr = $r;

(別sub)

my $j = Apache2::Cookie::Jar->new($gr);
↑この行

(現在の環境)
Apache 2.2.2
libapreq2 2.0.7
mod_perl 2.0.2
XSBuilder 0.28
Fedora Core 5

libapreq2のコンフィギュア
./configure --with-apache2-apxs=/usr/local/apache2/bin/apxs
--enable-perl-glue --with-expat=/usr/local/apache2

httpd.confにて
LoadModule modules/libapreq2.so
をしており、エラーはでていません。

Googleにて色々検索したのですが、エラーの解決法が分からず困っています。
もしお時間があれば是非、何が原因と考えられるか
教えていただきませんでしょうか?

以上、宜しくお願い致します。

コメント(11)

一つ目のパターン、handler サブルーチンで $r を第1引数として受け取っていますが、RequestRec オブジェクトは第2引数な気がします。
呼び出し方にもよりますが…
# ResponseHandler でしょうか…
# だとすれば method 属性も必要です。

以上、マジレス失礼しました。
ボンヌさん♪ありがとうございます。明日頑張って試してみます!!
また追加で質問するかもしれません。。。

他の方からも、もしお気づきの点があれば、引き続き宜しくお願い致します!!
ボンヌさん、そして、皆様へ

続報です。
昨日のlibapreqの件、まだ解決ができていません。

まず、
http://d.hatena.ne.jp/naoya/20060108/1136705441
の一番下を参考にしながら
第二引数でやってみましたが、
セグメンテーションフォルトになってしまいます。。。

あと、ResponseHandlerをhttpd.confに書いて使っているんですが、
# ResponseHandler でしょうか…
# だとすれば method 属性も必要です。
について、もう少し詳しく教えていただけませんでしょうか?
ちなみに、confの該当記述は

Alias /perl/ /usr/local/apache2/htdocs/perl/
<Location /perl/>
SetHandler perl-script
PerlResponseHandler ModPerl::Registry
PerlOptions +ParseHeaders +GlobalRequest
Options +ExecCGI
Order allow,deny
Allow from all
</Location>

それから
NameVirtualHost *:80
<VirtualHost *:80>
PerlModule mod_perl2
PerlRequire /usr/local/apache2/htdocs/perl/startup.pl

<Location /xx>
SetHandler perl-script
PerlResponseHandler (モジュール名)
</Location>
</VirtualHost>

です。

念のため、素直にエラーメッセージに従って、端末内のparam.al や jar.alを検索してみたのですがないんです。(インストール元ディレクトリも含めて。)
libapreq2を再インストールしても作成されませんでした。

(googleでみてみてもファイル名param.al や jar.alでの検索が一件もヒットしなかったです…このことについて英語のサイトはもちろん、ドイツ語のサイトまで見ているんですが分かりません(^^;)

インストール中の様子を見ても、.alファイルをインストールしようとしている様子はありませんでした。
これって、やっぱりファイル自体はないものなんでしょうか???

教えて下さい。おねがいします。
始めまして。私のModPerlの環境とは違うと思いますが、
ModPerlが好きでModPerl派です。
ModPerlのコンパイル自体はうまくいっているのでしょか?
単純なModPerl::Registryはうごきまか?
JOKERZさん♪ありがとうございます。
とりあえずエラーなしでmod_perl2インストールできたとは思うんですが。。。
再インストールしてみます。
一応、以下のサイトでの動作確認がおすすめと書いてあったページがあったので、これはやってみて、うごきました。

http://perl.apache.org/docs/2.0/user/intro/start_fast.html

もうしわけありませんが、めちゃめちゃ初心者なので、
上のサイト以外の確認方法で
ModPerl::Registryの動作確認方法があれば教えて下さい。
宜しくお願いします。
補足です。
現在、CGI.pmを利用したparamはいけているので
代替処理をしています。
mod_perl2再インストールし特に異常はみつかっていません。
ただ問題は解決されませんでした。。。

でも最終的にApache2::Requestにもどさなきゃいけないです(^^;
どうも。メージャースクリプトですが、
#!/usr/bin/perl -w
use strict;
print("Content-Type: text/plain\r\n\r\n");
if (exists $ENV{MOD_PERL}) {
print "running under mod_perl.";
} else {
print "not running under mod_perl.";
}

確認してみてはいかがでしょうか?
ありがとうございます。
お手数をお掛けしました。早速試してみます!
みなさん、解決しました。ありがとうございました。

結局、モジュールが壊れている可能性が高いと考えて、
再度インストールしましたがうまくいかず、
apache/mod_perl2/libapreq2とも、rpmに変えて再インストールを行い、
解決しました。
大変お手数をお掛けしました。
ありがとうございました。
良かったですね。ModPerlを満喫してください。

ログインすると、みんなのコメントがもっと見れるよ

mixiユーザー
ログインしてコメントしよう!

mod_perl 更新情報

mod_perlのメンバーはこんなコミュニティにも参加しています

星印の数は、共通して参加しているメンバーが多いほど増えます。