Ubuntu

nginx 似乎沒有為 php 載入 memcached 模組

  • January 7, 2014

我有一台執行 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 install with--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

我不確定還有什麼要檢查的。如果有人可以幫助我解決這個問題,我們將不勝感激。

謝謝!

$$ UPDATE $$ Memcached 正在使用 cli。

我解決了這個問題。我唯一要做的就是重新啟動 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

什麼是輸出

php -i |grep 記憶體記憶體

我使用 memcache 來儲存 php 會話以及 Magento Cache & Sessions。

有兩點不能混淆:

  1. Memcached -> 注意“d”,它是一個監聽埠號:11211 的守護程序。它可用於儲存 php 會話而不是文件系統等。
  2. Memcache -> 一個通常不用 php 編譯的模組。當您想將 php 會話儲存在 memcached 中時使用它。

因此,如果 php -i |grep memcache 顯示您已安裝 memcache。然後你需要安裝 memcached(守護程序)才能使用/發送會話給它。

引用自:https://serverfault.com/questions/565512