Como configurar o systemd para que o PHP possa usar o socket unix memcached?

1

Estou no processo de atualização do Ubuntu Server 16.04 para o 18.04 e ao mesmo tempo atualizando do PHP 5.6 para o PHP 7.

Em /etc/memcached.conf I adicionado:

-s /tmp/memcached.sock
-a 666

Quando eu reinicio o serviço, vejo:

srw-rw-rw- 1 memcache memcache 0 Nov 13 03:44 /tmp/systemd-private-7fc3b73707084a93bcc6abd22001eb7e-memcached.service-oIF206/tmp/memcached.sock=

Como posso configurar o systemd para saber onde está o soquete unix?

    
por Paul 13.11.2018 / 05:07

1 resposta

2

systemd tem PrivateTmp=true para o memcached.service

Uma maneira seria substituir PrivateTmp , especificamente para memcached.service , ou seja,

mkdir -p /etc/systemd/system/memcached.service.d
echo "[Service]" > /etc/systemd/system/memcached.service.d/override.conf
echo "PrivateTmp=false" >> /etc/systemd/system/memcached.service.d/override.conf
systemctl daemon-reload
systemctl restart memcached

Isso mudaria o memcached.service de volta para o uso de /tmp , em vez de /tmp/systemd-private-...

Supondo que você queira usar o memcached para manipulação de sessão; Depois de verificar que /tmp/memcahced.sock existe com as permissões corretas, em /etc/php.ini ou /etc/php/conf.d/memcached.ini alterar suporte à sessão.

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

Se existir, comente session.save_handler=files .

    
por 13.11.2018 / 15:59