2009-01-13 2 views
2

좋아요, 그래서 mod_perl로 Dispatcher를 설정하려고하는데 실제로 어떤 일을 잘못하고 있는지 알지 못합니다. 문제가 내 mod_perl 구성과 관련되어 있다는 것이 상당히 긍정적입니다.mod_perl을 사용하여 CGI :: Application :: Dispatch 작업을 수행하려면 어떻게해야합니까?

아파치 디렉토리 구성을

<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 : 파견은 ACD/ACD에 있습니다.

ACD : 파견

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

그리고 아마도 가장 중요한 것은, 아파치 오류 : 어떤 도움

[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 

감사합니다!

업데이트는 :

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

답변

4

음, 오류 메시지에 따라 :

ACD : 파견 : ACD를 찾을 수 없습니다 내 아파치 설정이 추가 필요 @INC의 /Dispatch.pm (@INC 에는 C :/usr/site/lib C :/usr/lib 포함) C :/Program Files/Apache Software Foundation/Apache2.2

와 당신이 말한 사실 :

ACD : 파견은 ACD/ACD에 있습니다.

절대 경로를 사용하여 @INC 경로에 "acd"디렉토리를 넣어야하는 것처럼 보입니다.

'.' @INC에 있으며 그 디렉토리는 acd이어야합니다. mod_perl에서는 그렇지 않습니다. 예를 들어 this discussion을 참조하십시오.

관련 문제