2009-06-30 8 views
1

Ich versuche Apache::Session::Memcached in einem HTML::Mason Projekt zu verwenden, wo ich MasonX::Request::WithApacheSession verwende, um meine Sitzungen zu behandeln. Unglücklicherweise wird Apache nicht starten, wenn ich das Memcached-Modul an Stelle des MySQL-Moduls anschließe. Meine benutzerdefinierten Handler sieht wie folgt aus etwas (ein paar snips hier und da):Verwenden von Apache :: Session :: Memcached mit MasonX :: Anfrage :: WithApacheSession

my $ah = HTML::Mason::ApacheHandler->new (
    comp_root     => $ENV{HTDOCS}, 
    data_dir     => $data_dir, 
    request_class    => 'MasonX::Request::WithApacheSession', 
    session_use_cookie   => 0, 
    args_method     => "mod_perl", 
    session_args_param   => 'session_id', 
    session_class    => 'Apache::Session::Memcached', 
    session_Servers    => '127.0.0.1:20000', 
    session_Readonly   => 0, 
    session_Debug    => 1, 
    session_cookie_domain  => $CONF->{global}->{site_name}, 
    session_cookie_expires  => "session", 
    session_allow_invalid_id => 0,           
    ); 

Das Problem, das ich in laufende bin ist, dass die session_* Paramater spezifisch für Memcached werden nicht an Apache::Session::Memcached wie the docs say it should geleitet wird. Dies führt zu diesem Fehler:

The following parameter was passed in the call to HTML::Mason::ApacheHandler->new() 
but was not listed in the validation options: session_Servers 

Jetzt habe ich durchgemacht und tauschte alle 3 Großbuchstaben Argumente Fall zu senken, ohne Erfolg. Und the docs für Apache::Session::Memcached listet sie als Großbuchstaben auf.

Vielen Dank für jede Hilfe.

Antwort

4

Es ist wie Sie Apache müssen sich registrieren, sucht :: Session :: Memcached mit Apache :: Session :: Wrapper, nach den Anweisungen auf http://search.cpan.org/perldoc/Apache::Session::Wrapper#REGISTERING_CLASSES wie so (Code mit freundlicher Genehmigung von Jack M.):

Apache::Session::Wrapper::->RegisterClass(
    'name' => 'Apache::Session::Memcached', 
    'required' => [ [ 'Servers' ], ], 
    'optional' => [ 'NoRehash', 'Readonly', 'Debug', 'CompressThreshold', ], 
); 
+3

Sie, Herr/Frau sind der Mann/die Frau! Ich habe mich selbst in diese Falle gedrängt. Ich habe nicht den Rep, um Ihren Beitrag zu bearbeiten, aber Sie sollten dies hier einwerfen: Apache :: Session :: Wrapper-> RegisterClass ( name => 'Apache :: Session :: Memcached', erforderlich => [['Servers'],], optional => ['NoRehash', 'Readonly', 'Debug', 'CompressThreshold',], ); –

Verwandte Themen