Wie kann ich CGI machen :: Anwendung :: Dispatch-Arbeit mit mod_perl?
-
22-07-2019 - |
Frage
Ok, also versuche ich, einen Dispatcher mit mod_perl einrichten und ich weiß wirklich nicht, was ich falsch mache. Ich bin ziemlich zuversichtlich, dass das Problem mit meiner mod_perl Konfiguration ist. Hier ist, was ich denke, ist relevant:
Apache Directory Config
<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>
Hinweis : ACD :: Der Versand erfolgt in acd / ACD
.ACD :: Versand
package ACD::Dispatch;
use base 'CGI::Application::Dispatch';
sub dispatch_args {
return {
prefix => 'ACD',
table => [
'' => { app => 'Controller', rm => 'awesome' },
':app/:rm' => { },
],
};
}
Und wahrscheinlich am wichtigsten ist, die Apache Fehler:
[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
Vielen Dank für jede Hilfe!
Aktualisieren : Ich brauchte diese zu meinen Apache Config hinzuzufügen:
<Perl>
use lib '/path/to/acd';
</Perl>
Lösung
Nun, auf der Grundlage der Fehlermeldung:
ACD :: Versand: Kann nicht gefunden werden ACD / Dispatch.pm in @INC (@INC enthält: C: / usr / site / lib C: / usr / lib. C: / Programme / Apache Software Stiftung / Apache2.2
und die Tatsache, dass Sie gesagt haben:
ACD :: Der Versand erfolgt in acd / ACD.
Es sieht aus wie Sie das „acd“ Verzeichnis im @INC Pfad setzen müssen, seine absolute Pfadnamen verwendet wird.
Auch wenn Sie vielleicht denken ‚‘ auf @INC ist und das sollte Ihr acd
Verzeichnis sein, ich weiß nicht, dass es unter mod_perl. Siehe zum Beispiel diese Diskussion .