我有一台运行着 nginx 和 memcache 的 Ubuntu 机器,我正在尝试将 PHP 与 Memcached 结合使用。我得到了Fatal error: Class 'Memcached' not found
。
ini 文件从 加载/etc/php5/fpm/php.ini
,并且解析所有其他附加 .ini 文件,但 memcached.ini 除外(即使在重新启动 nginx 之后),如 phpinfo() 的输出所示。
我尝试了一下apt-get install php5-memcache
,没有出现任何错误,但pecl install memcached
失败了,并出现以下错误:
In file included from /tmp/pear/temp/memcached/php_memcached.h:22:0,
from /tmp/pear/temp/memcached/php_memcached.c:47:
/tmp/pear/temp/memcached/php_libmemcached_compat.h:5:40: fatal error: libmemcached-1.0/memcached.h: No such file or directory
compilation terminated.
make: *** [php_memcached.lo] Error 1
ERROR: `make' failed
服务器上有 libmemcache /usr/include/libmemcached
,但即使使用 pecl 安装也会--with-libmemcache=/usr/include/libmemcached
失败。
的输出php -i | grep -i memcache
如下:
/etc/php5/cli/conf.d/memcached.ini,
memcached
memcached support => enabled
libmemcached version => 0.44
Registered save handlers => files user memcached
PWD => /usr/include/libmemcached
_SERVER["PWD"] => /usr/include/libmemcached
我不确定还要检查什么。如果有人能帮我解决这个问题,我将不胜感激。
谢谢!
[更新] Memcached 正在从命令行运行。
答案1
我解决了这个问题。我唯一要做的就是重新启动 php5-fpm
sudo service php5-fpm restart
。
答案2
输出是什么
php -i |grep 内存缓存
我使用 memcache 来存储 php 会话以及 Magento Cache & Sessions。
有两件事不要混淆:
Memcached -> 注意“d”,它是一个守护进程,监听端口号:11211。它可用于存储 php 会话,而不是文件系统等。
Memcache -> 通常不与 php 一起编译的模块。当您想要将 php 会话存储在 memcached 中时使用它。
因此如果 php -i |grep memcache 显示您已安装 memcache。那么您需要安装 memcached (守护进程) 才能使用/向其发送会话。