nginx 似乎没有为 php 加载 memcached 模块

nginx 似乎没有为 php 加载 memcached 模块

我有一台运行着 nginx 和 memcache 的 Ubuntu 机器,我正在尝试将 PHP 与 Memcached 结合使用。我得到了Fatal error: Class 'Memcached' not found

ini 文件从 加载/etc/php5/fpm/php.ini,并且解析所有其他附加 .ini 文件,但 memcached.ini 除外(即使在重新启动 nginx 之后),如 phpinfo() 的输出所示。

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

发现于 -https://insready.com/en/blog/building-nginx-microcaching-mariadbmysql-php-fpm-debian-6-apc-memcache-drupal-7-server

答案2

输出是什么

php -i |grep 内存缓存

我使用 memcache 来存储 php 会话以及 Magento Cache & Sessions。

有两件事不要混淆:

  1. Memcached -> 注意“d”,它是一个守护进程,监听端口号:11211。它可用于存储 php 会话,而不是文件系统等。

  2. Memcache -> 通常不与 php 一起编译的模块。当您想要将 php 会话存储在 memcached 中时使用它。

因此如果 php -i |grep memcache 显示您已安装 memcache。那么您需要安装 memcached (守护进程) 才能使用/向其发送会话。

相关内容