安装memcache onfedora linux OS

时间:2011-01-28 10:11:40

标签: apache memcached

我按以下方式安装了memcache:

1)yum install memcached 2)yum install php-pecl-memcached 3)还启用了php.ini中的'memcached.so'

我用以下方式测试了memcached:

$ mc = new Memcache; $ mc-> addServer('localhost',11211); echo“服务器的版本:”。 $ mc-> getVersion();

但它会产生以下错误:

PHP警告:PHP启动:无法加载动态库'/usr/lib64/php/modules/memcached.so' - /usr/lib64/php/modules/memcached.so:undefined symbol:php_json_encode in Unknown on line 0 PHP致命错误:第2行的/root/memcacheTest.php中找不到类“Memcache”

谢谢你。

5 个答案:

答案 0 :(得分:1)

我不太了解PHP(或根本不知道),但是从错误消息中我会猜测你没有安装PHP JSON扩展,这显然需要memchached扩展。

Apparently,JSON扩展自5.2.0版开始就在PHP中,因此:

  • 您的版本较旧,需要自行升级或安装JSON扩展程序

  • 您的操作系统分发服务器在您尚未安装的其他软件包中提供PHP JSON扩展。

当然存在配置错误的可能性,但我认为这种可能性略有不足。

答案 1 :(得分:1)

这表明memcached.so没有成功加载。

错误显示原因:json.so应该在memcached.so之前加载

请使用php -m | grep memcached检查memcached.so是否已成功加载。

  • 如果显示memcached,则表示成功。
  • 如果显示为PHP Warning: PHP Startup: Unable to load dynamic library '/usr/lib64/php/modules/memcached.so' - /usr/lib64/php/modules/memcached.so: undefined symbol: php_json_decode_ex in Unknown on line 0

这是一个解决方案: 例如你的php.ini是/etc/php.ini,你的php.d是/etc/php.d /

解决方案1 ​​

  1. 评论' memcached.so'在php.ini
  2. vim /etc/php.d/memcached.ini
  3. 在/memcached.ini
  4. 中添加extension=memcached.so
  5. php -m | grep memcached检查memcached是否已成功加载
  6. 解决方案2

    1. rm /etc/php.d/json.ini
    2. extension=json.so
    3. 之前在php.in中添加extension=memcached.so
    4. php -m | grep memcached检查memcached是否已成功加载

答案 2 :(得分:0)

您可以检查并仔细检查用户权限吗?另外,我使用PHP的经验是PHP的分发存储库版本不是很好。我通过从头开始编译PHP解决了这些符号错误。但这是一个非常激进且耗时的解决方案。

答案 3 :(得分:0)

http://pecl.php.net/bugs/bug.php?id=17574&edit=1

  

请确保在BEFORE之前指定了extension = json.so   延长= memcached.so。

     

我在php.ini中放置了extension = memcached.so,而extension = json.so   在/etc/php.d/json.ini中指定,在php.ini之后解析。   这就是为什么PHP在加载时找不到php_json_encode()的原因   memcached.so。

另外,检查memcached.so上的权限是否与其他扩展名相同

答案 4 :(得分:0)

尝试安装2.0版。这对我有帮助。

yum -y install gcc-c++
wget http://launchpad.net/libmemcached/1.0/0.50/+download/libmemcached-0.50.tar.gz
tar xzf libmemcached-0.50.tar.gz 
cd libmemcached-0.50
./configure 
make 
make install
wget http://pecl.php.net/get/memcached-2.0.0b2.tgz
pecl install memcached-2.0.0b2.tgz
echo 'extension=memcached.so' > /etc/php.d/memcached.ini
service php-fpm restart
cd ..
rm -r libmemcached-0.50*
rm -r memcached-