Como armazenar sessões php usando o soquete memcached e unix

2

Estou executando o Arch linux com systemd, nginx e php com php-fpm. Eu estou tentando (e falhando) para configurar o memcached para armazenar sessões usando um soquete unix. Eu tenho memcached instalado e ativo, no entanto, não consigo desativar a rede. Eu adicionei a seguinte linha ao /etc/conf.d/memcached

MEMCACHED_ARGS="-s unix:///tmp/memcached.sock -a 666"

Eu também tentei:

MEMCACHED_ARGS="-s /tmp/memcached.sock -a 666"
MEMCACHED_ARGS="-s unix:/tmp/memcached.sock -a 666"

quando eu reinicio o memcached eu sempre obtenho:

memcached.service - Memcached Daemon
          Loaded: loaded (/usr/lib/systemd/system/memcached.service; enabled)
          Active: active (running) since Sat 2013-01-19 17:41:15 PST; 5min ago
        Main PID: 773 (memcached)
          CGroup: name=systemd:/system/memcached.service
                  └─773 /usr/bin/memcached -l 127.0.0.1

quando executo o script php com as sessões, o log de erros do php mostra (não surpreendentemente):

[19-Jan-2013 16:46:45 America/Los_Angeles] PHP Warning:  Unknown: Failed to write session data (memcached). Please verify that the current setting of session.save_path is correct (unix:/tmp/memcached.sock) in Unknown on line 0

Eu também instalei o pacote php-memcached, mas não sei o que ele faz ou como fazê-lo funcionar. Eu descomentei a seguinte linha em /etc/php/conf.d/memcached.ini:

extension=memcached.so

mas isso não mudou nada.

Qualquer ideia ou sugestão seria muito apreciada.

    
por laertiades 20.01.2013 / 03:13

1 resposta

2

Config.d do Memcached

Um caminho de arquivo é tudo o que é necessário para o soquete unix do Memcached.

MEMCACHED_ARGS="-s /tmp/memcached.sock -a 666"

Você pode confirmar que o Memcached está operando normalmente executando o comando stats através do soquete unix.

bash $> echo stats | nc -U /tmp/memcached.sock
# returns list of server statistics

Configure a sessão do PHP para usar o Memcached

Edite php.ini ou /etc/php/conf.d/memcached.ini e adicione suporte à sessão .

extension=memcached.so
session.save_handler="memcached"
session.save_path="/tmp/memcached.sock"

Reinicie os serviços e verifique os registros do php

    
por 20.01.2013 / 23:03