我正在运行带有 systemd、nginx 和带有 php-fpm 的 php 的 Arch linux。我正在尝试(但失败了)配置 memcached 以使用 unix 套接字存储会话。我已安装并激活了 memcached,但是我无法禁用网络。我在 /etc/conf.d/memcached 中添加了以下行
MEMCACHED_ARGS="-s unix:///tmp/memcached.sock -a 666"
我也尝试过:
MEMCACHED_ARGS="-s /tmp/memcached.sock -a 666"
MEMCACHED_ARGS="-s unix:/tmp/memcached.sock -a 666"
当我重新启动 memcached 时我总是得到:
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
当我运行带有会话的 php 脚本时,php 错误日志显示(这并不奇怪):
[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
我还安装了 php-memcached 包,但我不知道它有什么用处,也不知道该如何启动它。我在 /etc/php/conf.d/memcached.ini 中取消注释了以下行:
extension=memcached.so
但这并没有改变什么。
任何见解或建议都将不胜感激。
答案1
Memcached 配置.d
Memcached 的 unix 套接字只需要一个文件路径。
MEMCACHED_ARGS="-s /tmp/memcached.sock -a 666"
stats
您可以通过unix套接字运行命令来确认Memcached是否正常运行。
bash $> echo stats | nc -U /tmp/memcached.sock
# returns list of server statistics
配置 PHP 的会话以使用 Memcached
编辑php.ini
、 或/etc/php/conf.d/memcached.ini
,并添加会话支持。
extension=memcached.so
session.save_handler="memcached"
session.save_path="/tmp/memcached.sock"
重启服务并验证 php 日志