2009-06-30 33 views
1

我想在HTML::Mason項目中使用Apache::Session::Memcached項目,我使用MasonX::Request::WithApacheSession來處理我的會話。不幸的是,當我插入Memcached模塊而不是MySQL時,Apache不會啓動。我的自定義處理程序看起來像這樣(在這裏的幾個剪,有):使用Apache :: Session :: Memcached與MasonX ::請求:: 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,           
    ); 

我遇到的問題是,具體到Memcached中的session_* PARAMATERS不被通過對Apache::Session::Memcached方式通the docs say it should。這導致了這個錯誤:

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

現在,我已經經歷了和所有交換的3點大寫的參數,以降低的情況下,都無濟於事。並且the docsApache::Session::Memcached將它們列爲大寫。

非常感謝您的幫助。

回答

4

看起來你需要註冊的Apache ::會議::與Apache ::會議::包裝了Memcached,繼http://search.cpan.org/perldoc/Apache::Session::Wrapper#REGISTERING_CLASSES像這樣(代碼禮貌傑克M.)的說明:

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

你,先生/女士是男人/女人!我一直在爲這件事煩惱。我沒有編輯你的帖子的代表,但你應該把它放在那裏: Apache :: Session :: Wrapper-> RegisterClass( name =>'Apache :: Session :: Memcached', required => [['Servers'],], optional => ['NoRehash','Readonly','Debug','CompressThreshold'], ); – 2009-07-01 14:39:56