Ubuntu

如何配置 systemd 以便 PHP 可以使用 memcached unix socket?

  • November 20, 2018

我正在從 Ubuntu Server 16.04 升級到 18.04,同時從 PHP 5.6 升級到 PHP 7。

/etc/memcached.conf我補充說:

-s /tmp/memcached.sock
-a 666

當我重新啟動服務時,我看到:

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

如何配置 systemd 以知道 unix 套接字在哪裡?

systemdPrivateTmp=true用於 memcached.service

一種方法是覆蓋PrivateTmp,特別是對於memcached.service,即

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

這會將 memcached.service 改回 using /tmp,而不是/tmp/systemd-private-...

假設您想使用 memcached 進行會話處理;一旦您驗證/tmp/memcahced.sock存在正確的權限,在/etc/php.ini/etc/php/conf.d/memcached.ini更改會話支持。

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

如果存在,請註釋掉session.save_handler=files

引用自:https://unix.stackexchange.com/questions/481372