致命错误:类'Memcache'未find(安装pecl)

我通过ssh安装了memcache,使用:

$ pecl install memcache 

这是输出: https : //pastee.org/w63sy

并将此行添加到etc/php.ini

 extension=memcache.so 

当试图初始化时:

 /* MEMCACHE */ $memcache = new Memcache(); $memcache->pconnect('localhost',11211); 

我得到:

 Fatal error: Class 'Memcache' not found in /home/piscolab/public_html/website.com/includes/sql.php on line 25 

我究竟做错了什么?

我发现这个问题,但问题是关于他的共享服务器。 我在VPS下。

运行: php -i | grep php.ini php -i | grep php.ini

 [root@vps ~]# php -i | grep php.ini                                                                                                                                           PHP Warning:  PHP Startup: Unable to load dynamic library '/usr/lib/php/modules/memcache.so' - /usr/lib/php/modules/memcache.so: cannot open shared object file: No such file o r directory in Unknown on line 0                                                                                                                                              Configuration File (php.ini) Path => /etc                                                                                                                                     Loaded Configuration File => /etc/php.ini                                                                                                                                     [root@vps ~]# 

查找memcache.so(无输出)

 [root@vps ~]# find / -type f -name memcache*.so' [root@vps ~]# find / -type f -name memcache*.so [root@vps ~]# 

鉴于错误消息的输出,它看起来像缺少zlib开发库,或者至少它们不在通常可以通过configure自动找到的位置。

既然你在CentOS上,那就试着用下面的命令安装库:

 yum install zlib-devel 

这将安装memcache所需的zlib库。 尝试在安装zlib库之后重新运行pecl安装程序。

如果你通过phpinfo()或php_config提供更多的信息,可能会有所帮助,更具体地说,你的安装是否看到了memcache库,并且你的lib路径是正确的。

 php-config 

会告诉你更多,这里有趣的是使用php ini路径,当你使用–configure-options,子选项–with-config-file-path(/ etc / php5 / apache2我的具体情况)和lib路径将显示 – 扩展目录

例如

 php-config --extension-dir php-config --configure-options | grep -o 'with-config-file-path[^ ,.]*' | grep -o '[^=.]*$' 

所以要使用我的例子我的lib路径设置为

/ usr / lib / php5 / 20090626 + lfs和

 ls /usr/lib/php5/20090626+lfs/mem* 

我的系统命令显示:

/usr/lib/php5/20090626+lfs/memcached.so

我的php.ini文件位于/etc/php5/apache2/php.ini

phpinfo()php函数(只是放置在一个文件中并查看它)也显示了memcache被支持并加载了“memcached支持启用”(我特别使用了memcached扩展,而不是memcache)

请注意,您的网络服务器可能被配置为使用不同的php.ini路径(因此文件)比您的命令行,因此验证两者。 另外请确保将扩展名= memcache.so放在正确的位置,因为许多发行版将它放在/etc/php5/conf.d/memcache.ini中可能存在一些差异吗?