2

さて、私は mod_perl で Dispatcher をセットアップしようとしていますが、何が間違っているのかよくわかりません。問題が私の mod_perl 構成にあることはかなり肯定的です。これが私が関連していると思うものです:

Apache ディレクトリ構成

<Directory  "C:/Documents and Settings/frew/My Documents/acd">
   SetHandler perl-script
   PerlHandler ACD::Dispatch
    Options Indexes FollowSymLinks ExecCGI
    AllowOverride None
    Order allow,deny
    Allow from all
    DirectoryIndex Default.html
</Directory>

: ACD::Dispatch は acd/ACD にあります。

ACD::ディスパッチ

package ACD::Dispatch;
use base 'CGI::Application::Dispatch';
sub dispatch_args {
    return {
        prefix  => 'ACD',
        table   => [
        ''                => { app => 'Controller', rm => 'awesome' },
        ':app/:rm'        => { },
        ],
    };
}

そしておそらく最も重要なのは、Apache エラーです。

[Mon Jan 12 17:42:08 2009] [error] [client 10.6.1.73] failed to resolve handler `ACD::Dispatch': Can't locate ACD/Dispatch.pm in @INC (@INC contains: C:/usr/site/lib C:/usr/lib . C:/Program Files/Apache Software Foundation/Apache2.2) at (eval 3) line 3.\n

助けてくれてありがとう!

更新:これをApache構成に追加する必要がありました:

<Perl>
   use lib '/path/to/acd';
</Perl>
4

1 に答える 1

4

さて、エラーメッセージに基づいて:

ACD::Dispatch: ACD/Dispatch.pm が @INC に見つかりません (@INC には次が含まれます: C:/usr/site/lib C:/usr/lib . C:/Program Files/Apache Software Foundation/Apache2.2

そしてあなたが言ったという事実:

ACD::Dispatch は acd/ACD にあります。

絶対パス名を使用して、「acd」ディレクトリを @INC パスに配置する必要があるようです。

「。」と思うかもしれませんが。は @INC にあり、それはあなたのディレクトリであるべきacdですが、mod_perl の下にあるとは思いません。たとえば、このディスカッションを参照してください。

于 2009-01-13T15:45:54.357 に答える